假設你有一個模型,它看起來有點像這樣:MVC的UpdateModel時,名稱不匹配
public class MyClass {
public string Name { get; set; }
public DateTime MyDate { get; set; }
}
的Visual Studio爲您對於MyDate
一個普通的文本框的默認編輯模板屬性。這是一切優秀和良好的,但是我們要說的是,你需要拆分成它的月/日/年的組件,並且您的形式如下:
<label for="MyDate">Date:</label>
<%= Html.TextBox("MyDate-Month", Model.MyDate.Month) %>
<%= Html.TextBox("MyDate-Day", Model.MyDate.Day) %>
<%= Html.TextBox("MyDate-Year", Model.MyDate.Year) %>
當這個被提交後,調用UpdateModel
韓元」 t工作,因爲MyDate-Month
沒有定義。有沒有辦法將自定義聯編程序添加到項目中來處理這種情況,或者如果HTML輸入的命名方式不同(出於任何原因)?
我發現的一種解決方法是在提交之前使用JavaScript向表單中注入隱藏輸入,將字段連接並命名正確,但感覺不對。
那會工作。雖然我需要使用ValueProvider []。AttemptedValue,RawValue返回一個字符串數組:)。 – swilliams 2009-07-23 18:57:20
我已經更新了這個。 – tvanfosson 2009-07-23 19:36:30