带有自动绑定的ASP.NET MVC数据属性

时间:2015-12-07 19:11:24

标签: asp.net-mvc asp.net-mvc-4

这是我进入视图的示例ViewModel:

public class CollectionOfStuffVM
{
    public string Element { get; set; }
    public bool IsPicked { get; set; }
}

这是要求多个项目的复选框,或者如果它只是一个选择项的下拉列表。 但是,如果我以自定义的方式绘制这个怎么办? 例如。下面(在编辑器模板中):

    <a href="javascript:void(0);" data-picked="@Model.IsPicked">@Model.Element</a>

当点击某些内容时,所有“数据挑选”内容都由javascript处理。 那么,如何自动绑定这些自定义“控件”呢?

我想有一些工作需要完成,我只是不确定,在哪里。我是否需要创建自定义输入? 我知道这个自动绑定对于输入是可行的,但我有点想要通过Javascript更新隐藏的输入。

请记住,这只是一个简单的例子,ViewModel有点复杂,在Javascript中构建所有内容以进行Ajax POST会很令人沮丧。

1 个答案:

答案 0 :(得分:1)

对于MVC,没有双向数据绑定这样的东西。这是因为,与WPF应用程序不同,其中所有内容都在同一台机器上运行,Web应用程序与服务器端和客户端组件脱节。

如果要将客户端设置的数据设置回服务器,则必须将其发布到服务器。如果使用标准表单处理,则必须包含具有该值的某种输入。如果使用AJAX进行操作,则可以更自由,因为您不需要物理HTML输入元素来保存值,但是您仍然有责任确保该值使其成为您发送给的对象。服务器通过AJAX。