我请求ASP.NET MVC使用URL这样的控制器:ASP.NET MVC解码Html.BeginForm URL
http://mysite.com/controller/myaction/Invalid%23name%25x
其中Invalid%23name%25x
是
public ActionResult MyAction(string id) {
return View();
}
的GET参数请求工作正常。
MyAction看法是这样的:
@using (Html.BeginForm()) {
...
<input name="Save" type="submit" value="Save" />
}
生成的HTML是:
<form action="/Controller/MyAction/Invalid#name%x" method="post">
...
<input name="Save" type="submit" value="Save" />
</form>
当我点击 “保存”,形式被发布和POST请求转到
http://mysite.com/controller/myaction/Invalid#name%x
即初始URL被解码。这意味着POST操作只接收参数的第一部分 - “无效”
[HttpPost]
public ActionResult MyAction(string id, ...) {
return View();
}
如何防止Html.BeginForm
从为了保全初始状态解码初始网址吗?
什么是生成的HTML? – SLaks
这看起来像是MVC中的一个错误。哪个版本? – SLaks