2015-12-07 55 views
-1

这是样品视图模型我得到的观点:ASP.NET MVC数据属性

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处理时,单击某物。 那么,如何自动绑定这些自定义的“控件”呢?

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

请记住,这只是一个简单的例子,ViewModel稍微复杂一点,如果必须在Javascript中构建所有内容才能执行Ajax POST,那将会令人沮丧。

+2

我读过这3次,对于我的生活我无法理解你想要什么。这不正常吗?具体来说,它在做什么,你期望它做什么?而且,这里没有足够的代码可以让我重现你所得到的任何东西。请在MCVE中进行编辑,并清除正在发生的事情以及您想要的内容。 – Becuzz

+1

自动绑定这些自定义“控件;这是什么意思?你可以更详细地描述你的预期行为吗? – Shyju

+0

如果你想要简单的绑定,你应该使用'RadioButtonFor'或'CheckBoxFor' hepler。 cliend或CustomModelBinder在服务器端。 –

回答

1

当涉及到MVC时,没有双向数据绑定的事情。这是因为,与WPF应用程序不同,WPF应用程序中的所有应用程序都运行在同一台计算机上,而Web应用程序与服务器端和客户端组件是分开的。

如果您希望客户端设置的数据在服务器上重新设置,您必须将其发布到服务器。如果您使用标准表单处理该数据,则必须包含某种具有该值的输入。如果你使用AJAX来做,你会有更多的自由,因为你不需要一个物理的HTML输入元素来保存这个值,但是你仍然有责任确保这个值能够传递给你发送给服务器通过AJAX。