我有一个带有几个输入框的简单html表单。当我单击保存时,它会找到正确的方法,但数据很奇怪。如果我的表单字段名称与路径中的字段名称相同,则传入的值是我的表单字段数据,而不是路径数据。
例如。
想象一下,你有以下路线。
// Both Get/Post
routes.MapRoute(
"User-Edit",
"user/{displayName}/edit",
new { controller = "Account", action = "edit" });
以及以下方法......
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit([Bind(Exclude = "UserId")]string displayName,
FormCollection formValues)
{...}
现在,请注意路由如何包含变量displayName
,控制器操作还有一个名为displayName
的参数?嗯,参数数据是来自表格的,而不是路线。
我不确定如何确保参数数据是路径数据?
这是我唯一的解决方案,我可以重命名路线变量,从displayName
到routeDisplayName
或其他什么..?
答案 0 :(得分:1)
ModelBinding约定规定参数填充自:
您必须(a)覆盖此默认行为或(b)重命名路线值。
我会选择b。
麦克