在模型对象上设置属性?
嗨,
我正在构建一个ASP.NET MVC站点,并遇到了一个问题。 在我的项目中,我得到了一个包含几个属性的modelview类,例如:
public class myModelView { public int MyProperty1(){ get; set;} public int MyProperty2(){ get; set;} public int MyProperty3(){ get; set;} }
此modelview类绑定到一个类型化视图,我需要能够设置属性。 我如何使用javascript / jquery执行此操作? 我尝试使用Model.MyProperty1 = 1,但这不起作用?
最好的祝福
您无法使用javascript设置服务器端值。 您可以使用HTML帮助器将这些值绑定到输入字段(文本框,隐藏字段,textareas,下拉列表…),然后使用javascript修改这些输入字段的值。
例如,如果您有隐藏字段:
你可以像这样修改它的值:
$('#foo').val('some new value');
然后,当将包含的表单提交给服务器时,新值将绑定到您的视图模型。
您正在尝试在客户端上设置服务器端属性 – 它将无法正常工作。 只有在呈现视图时,您的视图模型才存在于服务器上。 将响应发送到浏览器后,您的课程就不再存在了。
如果要将一些数据从客户端传递到服务器,则必须:
- 张贴表格,或
- 进行AJAX通话
看看jQuery ajax方法。
ViewModel用于将数据从控制器传递到视图,因此视图可以呈现HTML。 HTML呈现后,ViewModel将被丢弃。 没有必要在视图中设置ViewModel属性,因为稍后什么都不会使用它们。
我相信你来自WebForms(UpdatePanel)背景。 MVC是一个完全不同的概念/架构。 它的工作方式与WebForms / UpdatePanel不同。