我发现它会Html.BeginForm()
自动使用 RawUrl(即 QueryStringParamters)填充 routeValueDictionary。但是我需要指定一个 HtmlAttribute 所以我需要使用覆盖......
public static MvcForm BeginForm(this HtmlHelper htmlHelper, string actionName, string controllerName, FormMethod method, object htmlAttributes)
当我这样做时,QueryString 值不会自动添加到 RouteValueDictionary。我怎样才能做到这一点?
这是我最好的尝试,但似乎没有用。
<% RouteValueDictionary routeValueDictionary = new RouteValueDictionary(ViewContext.RouteData.Values);
foreach (string key in Request.QueryString.Keys )
{
routeValueDictionary[key] = Request.QueryString[key].ToString();
}
using (Html.BeginForm("Login", "Membership", routeValueDictionary, FormMethod.Post, new { @class = "signin-form" }))
{%> ...
我的控制器动作看起来像这样......
[HttpPost]
public ActionResult Login(Login member, string returnUrl)
{ ...
但是作为 QueryString 一部分的“returnUrl”的值始终为 NULL,除非我在视图中使用默认的无参数 Html.BeginForm()。
谢谢,贾斯汀