【问题标题】:Bind Model in javascript function and pass it to Controller在javascript函数中绑定模型并将其传递给控制器
【发布时间】:2013-05-30 18:33:38
【问题描述】:
我正在使用 Window.showModelDialog() 从 mvc 视图打开一个 aspx 页面“Test.aspx”,并且该页面在该 MVC 视图上的 JavaScript 函数(window.returnValue) 中返回一些值,现在我必须将此值绑定到模型属性并将其传递给控制器。如何将此值绑定到模型并将其传递给控制器?
【问题讨论】:
标签:
javascript
jquery
asp.net-mvc
model-view-controller
asp.net-mvc-4
【解决方案1】:
默认模型绑定器尝试将 POST 变量名称与模型属性名称匹配。这意味着您可以随时动态添加将绑定到模型属性的字段,只要最终 POST 中的变量名称与模型属性匹配。
创建一个隐藏字段,其name 属性与您的模型属性的名称匹配:
<input type="hidden" id="hdnMyProperty" name="MyProperty" />
然后在关闭对话框时使用 jQuery 填充字段的值:
var property = /* Your returned value here */;
$('#hdnMyProperty').val(property);
如果属性的值可以绑定到有问题的模型属性,则模型绑定器将在您提交主表单时处理其余部分。