0

希望这对外面的人来说是一件容易的事。

我正在尝试向我的 MVC 控制器发布一个表单,该控制器恰好在模型上有一个“动作”属性。

不幸的是,model.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

请记住,我无法控制发布的表单数据,因此我无法更改模型的操作属性。我需要能够在 MVC 服务器端解决这个问题。

如何将模型中的操作属性设置覆盖为控制器的操作?对于我的项目中的一个特定控制器,我只需要此功能。

有什么建议么?

4

1 回答 1

0

好的,我发现了问题。实际上是我使用 fiddler2 来触发控制器动作。当我将操作作为 URL 的一部分时,MVC 将替换为控制器操作。

当我将操作部分作为 request.body 并将“Content-Type: application/x-www-form-urlencoded”添加到标头时,控制器模型具有预期值。

于 2013-07-21T22:52:46.357 回答