在模型对象上设置属性?

时间:2011-03-03 13:13:46

标签: javascript jquery asp.net-mvc

您好,

我正在构建一个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,但这不起作用?

BestRegards

2 个答案:

答案 0 :(得分:22)

您无法使用javascript设置服务器端值。您可以使用HTML帮助器将这些值绑定到输入字段(文本框,隐藏字段,textareas,下拉列表...),然后使用javascript修改这些输入字段的值。

例如,如果你有一个隐藏字段:

<input type="hidden" name="foo" id="foo" value="bar" />

您可以像这样修改其值:

$('#foo').val('some new value');

然后,当包含表单提交给服务器时,新值将绑定到您的视图模型。

答案 1 :(得分:2)

您正尝试在客户端上设置服务器端属性 - 它将无法正常工作。 只有在呈现视图时,您的视图模型才存在于服务器上。将响应发送到浏览器后,您的课程就不再存在了。

如果要将一些数据从客户端传递到服务器,则必须:

  • 发布表单,或
  • 进行AJAX通话

查看jQuery ajax方法。

ViewModel用于将数据从控制器传递到视图,因此视图可以呈现HTML。 HTML呈现后,ViewModel将被丢弃。没有必要在视图中设置ViewModel属性,因为以后什么都不会使用它们。

我相信你来自WebForms(UpdatePanel)背景。 MVC是完全不同的概念/架构。它的工作方式与WebForms / UpdatePanel不同。

相关问题