我使用了以下教程:http : //msdn.microsoft.com/zh-cn/library/gg508808%28VS.98%29.aspx一切似乎都很好,但就我而言,字符串Username總是返回null。經過大量研究,我發現每個人都發現了BIND前綴。在許多情況下,這將是很好的選擇,但在這種情況下卻不是。我應該注意所有屬性和名稱對齊,但是在我的for循環中,EditorFor創建了一個[i] .Username字段,并且此字段未映射到任何模型屬性。問題:我想我想將[i] .Username映射到Username,其中i是從0到無窮大的任何數字,因此當它GETS時,該值將正確傳遞給Action。我該怎么做呢?如果這是錯誤的,我該如何對表中的特定行進行驗證?@for (var i = 0; i < Model.Count; i++){ BLAH BLAH BLAH CODE FOR BUILDING TABLE ROWS <td> @Html.EditorFor(modelItem => Model[i].Username) </td> }因為從技術上講我可以擁有成百上千的記錄(如果沒有成千上萬的記錄),那么我寧愿沒有針對所有1000的具有約束力的前綴。我在這里根本上缺少什么嗎?我是ASP.NET MVC的新手,并且習慣于WebForms,所以我感覺有時候我在混搭概念并混搭完全錯誤的東西。編輯: 我通過執行以下修復,但不確定這是否是最好的主意。我將參數設置為等于不帶[i]前綴的FieldName,但是仍然檢索帶[i]前綴的元素。Javascript不是我的強項,所以請讓我知道它是否可怕。adapters.add("remote", ["url", "type", "additionalfields"], function (options) { var value = { url: options.params.url, type: options.params.type || "GET", data: {} }, prefix = getModelPrefix(options.element.name); $.each(splitAndTrim(options.params.additionalfields || options.element.name), function (i, fieldName) { var paramName = fieldName.substr(fieldName.lastIndexOf(".") + 1); var actualFieldName = appendModelPrefix(fieldName, prefix) value.data[paramName] = function () { return $(options.form).find(":input").filter("[name='" + escapeAttributeValue(actualFieldName) + "']").val(); }; }); setValidationValues(options, "remote", value);});
- 2 回答
- 0 關注
- 474 瀏覽
添加回答
舉報
0/150
提交
取消