【发布时间】:2012-05-31 12:04:51
【问题描述】:
在 ASP.NET MVC 中,我想重用一组常用的信用卡字段,方法是将它们放在部分视图中,然后在父视图的另一个表单中呈现该部分视图。
问题是,如果 CreditCard 对象是模型的一部分,它本身就是一个复杂的对象,当我将它传递给部分视图时,在表单提交时,字段名称缺少父属性名称前缀,这将允许默认模型绑定器将字段映射到复杂对象的正确属性。
信用卡字段在部分视图中呈现(不正确的行为):
@Html.RenderPartial("~/Views/Pay/CCForm.cshtml", Model.CreditCard ,
new ViewDataDictionary());
帖子字符串:
PayOption=1&CreditCardNumberPlainText=0000000000000&StartDateMm=03&StartDateYyyy=2008&ExpiryDateMm=03&ExpiryDateYyyy=2017&SecurityCode=111&IssueNumber=1&X-Requested-With=XMLHttpRequest
标准形式(正确行为),其中信用卡字段在主视图中呈现,字段如下:
@Html.TextBoxFor(x => x.CreditCard.IssueNumber, new {@maxlength = 3, @size = 3})
帖子字符串:
PayOption = 1&CreditCardInfo.CreditCardNumberPlainText = 0000000000000000&CreditCardInfo.StartDateMm = 02&CreditCardInfo.StartDateYyyy = 2009&CreditCardInfo.ExpiryDateMm = 04&CreditCardInfo.ExpiryDateYyyy = 2014&CreditCardInfo.SecurityCode = 111&CreditCardInfo.IssueNumber = 1&X-请求-随着= XMLHttpRequest的 P>
【问题讨论】:
标签: asp.net-mvc partial-views model-binding mvc-editor-templates