如果未提交另一个Action的表单,则禁止访问页面

时间:2014-11-22 14:00:42

标签: c# asp.net asp.net-mvc

我试图在我的ASP.NET MVC应用程序中创建注册。注册分为不同的区域。

首先,我进入“创建”页面。如果Create中的表单已成功填写并且我已提交,我想继续使用另一种表单的AccountInfo。

[HttpGet]
public ActionResult Create()
{
    return View("Create");
}

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(Account account)
{
    if(ModelState.IsValid)
    {
        using (db)
        {
            return RedirectToAction("AccountInfo", new { account = account });
        }

    }
    return View();
}

public ActionResult AccountInfo(Account account)
{

    db.Accounts.Add(account);
    db.SaveChanges();
    return View();
}

如果AccountInfo中的表单未填写,我如何禁止访问Create

2 个答案:

答案 0 :(得分:2)

嗯,你关心的是帐户已经填写,所以你真的不必担心有人直接来到AccountInfo。如果他们这样做,他们就不会拥有有效的Account对象。如果帐户对象无效,那么您只需将它们重定向回创建。

答案 1 :(得分:1)

检查第一个表单中的所有参数是否为"有效"当你到达第二个表格时填写。您还可以检查该呼叫是否来自该页面。只需检查http请求对象即可找到正确的信息。

以下是我所指的对象:http://msdn.microsoft.com/en-us/library/system.web.httprequest%28v=vs.110%29.aspx