在我的 LoginController 中,我有以下操作方法:
[HttpPost]
public ActionResult Login(LoginViewModel model, string returnUrl) {
if (ModelState.IsValid) {
if (authProvider.Authenticate(model.UserName, model.Password)) {
return Redirect(returnUrl ?? Url.Action("Index", "Admin"));
} else {
ModelState.AddModelError("", "Incorrect username or password");
return View();
}
} else {
return View();
}
}
并且相应的视图是使用 LoginViewModel(也是上述操作方法的第一个参数)类进行强类型化的,这就是调用操作方法的方式:
@using(Html.BeginForm()) {
@Html.EditorForModel()
<p><input type="submit" value="Log in" /></p>
}
现在我有两个问题:
1.控制器中有另一个同名的动作方法。不同的是另一个没有 [HttpPost] 属性。为什么调用了上述动作方法而不调用另一个?
2.action方法的两个参数都不是null。将哪些信息传递给调用的操作方法。可以推断出模型和url被传递给方法吗?如果是这样,那么这两个参数在什么情况下通过,什么时候不通过?