MVC操作,我应该创建2个登录操作吗?

时间:2008-11-13 23:40:46

标签: asp.net-mvc model-view-controller

在asp.net mvc中,我想创建一个登录操作。

所以这就是我的做法:

  1. 创建一个名为login的操作/视图,只显示视图。

  2. 创建另一个名为login2的操作,该操作将是处理表单发布的页面,如果用户名/密码正确则检查数据库。如果是,则重定向到某个页面,如果没有,则重定向回登录页面并显示相应的错误消息。

  3. 这是最好的方法吗?

3 个答案:

答案 0 :(得分:5)

您可以创建一个用于查看的登录操作和一个用于表单发布的登录操作。然后使用AcceptVerbs属性装饰它们以描述它们将接受哪种方法。请参阅此处以获取示例http://weblogs.asp.net/scottgu/archive/2008/09/02/asp-net-mvc-preview-5-and-form-posting-scenarios.aspx

答案 1 :(得分:1)

这是我使用的模式:

    /// <summary>
    /// Displays the Login screen the first time
    /// to anyone who wishes to view it.
    /// </summary>
    /// <returns></returns>
    [AcceptVerbs(HttpVerbs.Get)]
    public ActionResult Login()
    {
        return View();
    }

    /// <summary>
    /// Handles the form postback
    /// </summary>
    /// <returns></returns>
    [AcceptVerbs(HttpVerbs.Post)]
    [ValidateAntiForgeryToken]
    public ActionResult Login(string name, 
                              string password, 
                              string ReturnUrl)
    {
        // perform authentication here

        if (string.IsNullOrEmpty(ReturnUrl))
            return RedirectToAction("Index", "Main");

        return Redirect(ReturnUrl);
    }

答案 2 :(得分:0)

我同意克雷格的意见;但是,如果你想以其他方式做,你应该提出一些命名约定来区分你的ActionMethods并坚持下去。

在预览之前我使用了

login =&gt;认证 create =&gt;插入 edit =&gt;更新