ASP.NET MVC字段id生成,由AJAX加载的部分视图创建非唯一名称

D.R*_*.R. 8 c# asp.net-mvc asp.net-mvc-4

我们使用ASP.NET MVC的HTML帮助程序来生成表单,因此表单字段的名称也由这些HTML帮助程序生成.

每当我通过AJAX将局部视图加载到我当前页面时(例如进入模态对话框),如果此局部视图的模型包含一个与原始视图模型中的其他字段命名相同的字段,则会遇到问题(因为ASP.NET MVC生成相同的ID).

有没有办法告诉局部视图使用特定前缀呈现其字段(以这种方式,后来的模型绑定理解那些前缀名称)?

目前我们将局部视图模型中的字段重命名为"PartialDateOfBirth",以便不干扰原始页面的模型"DateOfBirth",但如果您通过AJAX将相同的局部视图多次加载到页面中,那么这很糟糕并且不起作用...

问题的最佳实践解决方案?

sin*_*ino 0

创建您自己的 Helper 方法来传递带有 ID 的前缀,这不是一项艰巨的工作。