首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

MVC3:为何页面Post后action可以获取到参数

2013-11-13 
MVC3:为什么页面Post后action可以获取到参数。页面代码:@model MvcMovie.Models.LogOnModel@{ViewBag.Title

MVC3:为什么页面Post后action可以获取到参数。
页面代码:


@model MvcMovie.Models.LogOnModel

@{
    ViewBag.Title = "Log On";
}

<h2>Log On</h2>
<p>
    Please enter your user name and password. @Html.ActionLink("Register", "Register") if you don't have an account.
</p>

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

@Html.ValidationSummary(true, "Login was unsuccessful. Please correct the errors and try again.")

@using (Html.BeginForm()) {
    <div>
        <fieldset>
            <legend>Account Information</legend>

            <div class="editor-label">
                @Html.LabelFor(m => m.UserName)
            </div>
            <div class="editor-field">
                @Html.TextBoxFor(m => m.UserName)
                @Html.ValidationMessageFor(m => m.UserName)
            </div>

            <div class="editor-label">
                @Html.LabelFor(m => m.Password)
            </div>
            <div class="editor-field">
                @Html.PasswordFor(m => m.Password)
                @Html.ValidationMessageFor(m => m.Password)
            </div>

            <div class="editor-label">
                @Html.CheckBoxFor(m => m.RememberMe)
                @Html.LabelFor(m => m.RememberMe)
            </div>

            <p>
                <input type="submit" value="Log On" />
            </p>
        </fieldset>
    </div>
}



后台代码:

        [HttpPost]
        public ActionResult LogOn(LogOnModel model, string returnUrl)
        {
            if (ModelState.IsValid)
            {
                if (Membership.ValidateUser(model.UserName, model.Password))
                {
                    FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
                    if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/")
                        && !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\"))
                    {
                        return Redirect(returnUrl);
                    } else
                    {
                        return RedirectToAction("Index", "Home");


                    }
                } else
                {
                    ModelState.AddModelError("", "The user name or password provided is incorrect.");
                }
            }

            // If we got this far, something failed, redisplay form
            return View(model);
        }


这个action的2个参数是怎么获取到的啊?
[解决办法]
你要理解Controller是做什么的,提供用于响应对 MVC 网站所进行的 HTTP 请求的方法。
从用户接收请求, 将模型与视图匹配在一起,共同完成用户的请求。

Controller的一个重要作用就是负责将获取Model数据,将Model传递给View对象。
通知View对象,获取数据、显示数据或进行自己的操作。
[解决办法]
在java中form表单提交时,我们可以在webconfig中指定这个表单提交到哪个action中
[解决办法]
相当于request["name"] 如果有跟参数 或者model里的值的name匹配的话会自动把值赋给它

热点排行