0

我有一个场景,我需要使用一个视图来实现两个表单......将有一个主页,每个主页都有一个用于登录和注册的表单(类似于 Facebook 主页)。我为我的主页 (Index.cshtml) 创建了一个视图,其中包含razor我的两个表单的代码。

[ @using (Html.BeginForm("LogIn", "Home", FormMethod.Post))]

[ @using (Html.BeginForm("SignUp", "Home", FormMethod.Post))]

但是,在单击登录表单的“登录”按钮或单击注册表单的“注册”按钮时,运行时会抛出一个错误,基本上说我仍然需要为登录和注册操作创建视图,即使我已经在我的 index.cshtml 中实现了 HTML 表单

[注意:我没有使用 ASP.NET 成员资格提供程序。而本题一般为两种形式,可以是任意两种形式。]

所以我的问题是:我真的需要再创建两个名为 LogIn.cshtml 和 SignUp.cshtml 的视图吗?这不会导致代码重复吗?我对 MVC 4 很陌生,我希望你明白我在这里想要做什么,所以我只想知道是否有其他方法可以实现这一点?(jQuery,AJAX 什么的)

public class HomeController : Controller
{
    [HttpGet]
    public ActionResult Index()
    {
        return View();
    }

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

    [HttpPost]
    public ActionResult LogIn(Account acc)
    {                  
        // some code
        return View();
    } 

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

    [HttpPost]
    public ActionResult SignUp(Account acc)
    {                  
        // some code
        return View();
    }       

}
4

1 回答 1

0

您可以指定要返回的视图:

[HttpGet]
public ActionResult SignUp()
{       
    return View("LogIn");
}
于 2013-04-02T12:33:48.427 回答