我有一个ASP.NET MVC2应用程序,它包含一个部分视图,允许用户在一组对象上设置各种属性。这些目前使用HTML输入控件完成,例如文本框和下拉列表。我正在使用out-of-the-box model binding通过表单发送用户输入的值到服务器。
出于审美原因,我需要用手动替代方案替换所有下拉列表,这些替代方案将为列表中的每个项目显示一个图标,并具有各种翻转效果。
所以我现在正在审查我的选项,了解这些项目中的选定值将如何包含在表单帖子中。显而易见的解决方案似乎是使用隐藏的HTML控件,并使用jQuery将自定义下拉列表中选择的值设置为相应的控件。
在这个例子中,有人可以建议更简单/更清晰的模型绑定替代方案吗?
答案 0 :(得分:1)
是否有css和javascript技术替换保留现有表单元素并简单地在顶部添加自定义UI效果?
http://labs.engageinteractive.co.uk/itoggle/
我认为最简单的解决方案是在页面上层叠不引人注目的javascript,它与幕后的实时表单元素进行交互。然后你不要扯掉或重写MVC的巨大和关键部分。
答案 1 :(得分:0)
您使用隐藏输入元素的第一个选择是首先想到的,因为您正在寻找替代方案,这里有一个:
您可以将选定的值存储为Javascript中的数组或JSON对象,然后使用此对象并将其发布回控制器方法,以便在另一端进行反序列化。
如果您使用的是默认活页夹,则可能需要手动将发布的值映射到相应的模型属性。
如果我想出更多想法,我一定会加上它们。