0

希望这对那里的人来说很简单。如何路由MVC,以便可以使用model.action参数发布表单?

我想发布一个窗体到我的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 

请记住我已经被贴过的表单数据无法控制,所以我不能改变模型的action属性。我需要能够解决MVC服务器端的这个问题。

如何覆盖我的模型中的动作属性设置为控制器的访问?我只需要这个功能在我的项目中的一个特定的控制器。

有什么建议吗?

+0

你可以显示你的路由配置吗? –

回答

0

好吧,我想出了问题。其实这是我用fiddler2来触发控制器的动作。当我将该操作作为URL的一部分时,MVC将替换为控制器操作。

当我做了request.body的动作部分,并向头部添加了“Content-Type:application/x-www-form-urlencoded”时,控制器模型具有期望的值。