希望对于那里的人来说这很容易。
我正在尝试将一个表单发布到我的MVC控制器上,该控件碰巧在模型上有一个“action”属性。
不幸的是,model.action正在解析为控制器操作,而不是已发布模型的action属性。
public class PostModel
{
public string action { get; set; }
public string username { get; set; }
public string password { get; set; }
}
public ActionResult DoSomething(string id, PostModel model)
{
// id == 98f4
// model.username == "TEST"
// model.password == "TEST"
// model.action == "DoSomething" NOT "TEST" as I was expecting.
}
以下是我发布的内容:
POST -> http://localhost:7832/Forms/DoSomething/98f4?username=TEST&password=TEST&action=TEST
请记住,我无法控制发布的表单数据,因此无法更改模型的action属性。我需要能够在MVC服务器端解决这个问题。
如何将模型中action属性的设置覆盖到控制器的动作?我只需要在我的项目中为一个特定的控制器使用此功能。
有什么建议吗?
答案 0 :(得分:0)
好的,我发现了问题。实际上,我使用fiddler2来控制控制器动作。当我将操作作为URL的一部分时,MVC将替换为控制器操作。
当我将动作作为request.body的一部分,并将“Content-Type:application / x-www-form-urlencoded”添加到标题中时,控制器模型具有预期的值。