我有一个部分视图,如下所示
@using (Html.BeginForm("SignIn", "Account", FormMethod.Post, new { ReturnUrl = ViewBag.ReturnUrl], role = "form" }))
用于登录我的网站。
我喜欢我的用户可以打电话
http://example.com/Account/SignIn?ReturnUrl=somecontroller
但我的帖子数据从不包含添加的参数
我的GETAction看起来像
public ActionResult SignIn(string ReturnUrl)
{
ViewBag.ReturnUrl = ReturnUrl;
return View();
}
我的PostAction看起来像
public ActionResult SignIn(SignInModel model, string ReturnUrl)
ReturnUrl始终为null - 因为表单不发布我的参数。
如何让它发布参数?
答案 0 :(得分:0)
您使用的是错误版本的BeginForm方法。试试这个:
SignIn.cshtml:
@using (Html.BeginForm("SignIn", "Second", new { ReturnUrl = ViewBag.ReturnUrl, role = "form" }, FormMethod.Post, null))
{
@ViewBag.ReturnUrl
<input type="submit" value="ok" />
}
控制器:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace MvcApplication2.Controllers
{
public class SecondController : Controller
{
//
// GET: /Second/
public ActionResult SignIn(string ReturnUrl)
{
ViewBag.ReturnUrl = ReturnUrl;
return View();
}
[HttpPost]
public ActionResult SignIn(SignInModel model, string ReturnUrl)
{
ViewBag.ReturnUrl = ReturnUrl;
return View();
}
}
}
无论如何,我不知道你为什么使用路线值而不只是在表格中定义一些字段......