我正在使用以下Razor代码:
@using (Html.BeginForm("action", "controller", new { ReturnUrl = ViewBag.ReturnUrl }, FormMethod.Post, new { @class = "form", @id = "registerForm", data_href = "/User/Account/Register" }))
{
....
}
这会产生:
<form action="/User/Account/Register" class="form" data-href="/User/Account/Register" id="registerForm" method="post" novalidate="novalidate">
我在生成的代码中看不到任何对ReturnUrl的引用。有人可以解释这是存储为HTML的一部分吗?
答案 0 :(得分:1)
让我们来看看您的代码
@using (Html.BeginForm("action", "controller", new { ReturnUrl = ViewBag.ReturnUrl }, FormMethod.Post, new { @class = "form", @id = "registerForm", data_href = "/User/Account/Register" }))
{
....
}
第一个参数是操作方法名称,第二个参数是控制器,第三个参数是RouteValueDictionary
所以当你指定ReturnUrl时,它会成为路径数据参数的一部分,在你的操作方法中你可以访问它喜欢
public ActionResult action(FormColection col, string ReturnUrl){
}
答案 1 :(得分:0)
由于某些原因,我没有在表格标签中获得所需的返回参数
写这个
@using(Html.BeginForm("Login", "Account",
new { returnUrl = ViewBag.ReturnUrl, }, FormMethod.Post, null))
想要这个,它应该用html写这个
<form action="/Account/Login?returnUrl=%2FDashboard%2FIndex" method="post">
但是在浏览器html中获取此内容
<form action="/Account/Login/Dashboard/Index" method="post">
<强>解决方案:强>
@using(Html.BeginForm("Login", "Account",
new { backUrl = ViewBag.ReturnUrl, }, FormMethod.Post, null))
将生成此
<form action="/Account/Login?backUrl=%2FDashboard%2FIndex" method="post">