你好我最近开始在一个基于JQuery / JQueryUI的ASP .Net网站上工作。这个想法是只有一个页面,并通过对话框和ajax加载其余的内容,等等。
然而问题是当创造&同时模型的编辑表单在对话框中打开,同时一些JQueryUI小部件(如DatePicker停止作为表单工作)导致DOM在两个字段中都存在重复的id。
所以我尝试在控制器上使用此代码:
ViewData.TemplateInfo.HtmlFieldPrefix = "Create"; // or Edit etc
这有助于修复DatePicker问题,但这些字段在发回控制器时不再映射到模型。
有谁知道如何解决这个问题?
答案 0 :(得分:27)
您可以尝试在绑定时指定相同的前缀:
[HttpPost]
public ActionResult Create([Bind(Prefix = "Create")] CreateViewModel model)
{
...
}
答案 1 :(得分:1)
对于遇到相同问题的任何人,您也可以将模型重命名为“创建”,如下所示:
[HttpPost]
public ActionResult Create(CreateViewModel create)
{
...
}
我觉得哪个看起来更好,但有点危险。如果其他开发人员或您决定稍后更改参数名称,则表单将会中断,这是不理想的。
我认为这是因为我的一个表格正确绑定而另一个没有。一个人有前缀作为参数名称,一个只是“模型”。