ASP.Net MVC表格发布

时间:2011-03-02 19:26:24

标签: asp.net asp.net-mvc

我有一个asp.net mvc registratrion表单

 <% using (Html.BeginForm("Register", "Home" , FormMethod.Post))
                       { %>     
        <div>
            <fieldset>
                <legend>Account Information</legend>
                <p>
                    <label for="username">User Name:</label>
                    <%= Html.TextBox("username") %>
                    <%= Html.ValidationMessage("username") %>
                </p>
                <p>
                    <label for="FirstName">First Name</label>
                    <%= Html.TextBox("firstName") %>
                    <%= Html.ValidationMessage("firstName") %>
                </p>
                <p>
                    <label for="LastName">Last Name</label>
                    <%= Html.TextBox("lastName") %>
                    <%= Html.ValidationMessage("lastName") %>

                </p>
                <p>
                    <label for="email">Email:</label>
                    <%= Html.TextBox("email") %>
                    <%= Html.ValidationMessage("email") %>
                </p>
                <p>
                    <label for="password">Password:</label>
                    <%= Html.Password("password") %>
                    <%= Html.ValidationMessage("password") %>
                </p>
                <p>
                    <label for="confirmPassword">Confirm password:</label>
                    <%= Html.Password("confirmPassword") %>
                    <%= Html.ValidationMessage("confirmPassword") %>
                </p>
                <p>
                    <label for="Role">Role:</label>
                    <%= Html.DropDownList("Role",((SelectList)ViewData["Roles"]),"--Select One---") %>
                </p>
                <p>
                    <input type="submit" value="Register" />
                </p>
            </fieldset>
        </div>
    <% } %>
</asp:Content>

//我的Homecontroller.cs方法

[AcceptVerbs(HttpVerbs.Post)]
        public ActionResult Register(string username, string firstName, string lastName, string password, string confirmPassword, string email,string role)
        {
            try
            {

                int id =  _usrService.GetRoleId(role);
                Data.User usr = new User(username, firstName, lastName, email, DateTime.Now, null, id);

                if (_usrService.RegisterUser(usr, password, confirmPassword, "none", "none"))
                {
                    return View("Logon");
                }
                return View();
            }
            catch (Exception ex)
            {
                return RedirectToAction("Register");
            }


        }

在按下注册按钮时,它没有按下我的注册方法中的任何一个断点。

2 个答案:

答案 0 :(得分:0)

如果页面重定向到登录页面,则最可能的原因是表单身份验证不允许匿名访问目标文件或目录。这是在authorization文件的authenticationweb.config元素中配置的。

这些链接提供了ASP.NET中的身份验证和授权概述:

http://www.4guysfromrolla.com/articles/031204-1.aspx#postadlink

http://msdn.microsoft.com/en-us/library/ff649264.aspx

http://msdn.microsoft.com/en-us/library/b6x6shw7(v=VS.90).aspx

答案 1 :(得分:0)

您应该删除可能放在[Authorize]操作或包含它的控制器上的任何Register属性。根据您的描述,看起来需要身份验证才能调用操作(因为[Authorize]属性),如果用户未经过身份验证,则只会将其重定向到登录操作,而不会执行{{{ 1}}行动。