【发布时间】:2016-01-23 23:51:13
【问题描述】:
我对 MVC 有点陌生,并试图将登录页面重写为 MVC。 我无法在控制器中将参数传递给我的 ActionResult,传入的参数为空。
这里是视图
<div class="form-group">
<div class="row">
@Html.TextBoxFor(model => model.UserName)
</div>
</div>
<button class="btn btn-primary">
@Html.ActionLink("GO!", "AppList", "LogIn", new { @userName = Model.UserName}, null)
</button>
我正在尝试将用户名和密码传递给我的控制器。
public ActionResult AppList(string userName)
{
return View();
}
我查看了其他帖子,我确定我为此使用了适当的重载。
这里我添加了路由配置
routes.MapRoute(
name: "LogIn",
url: "{controller}/{action}/{id}",
defaults: new { controller = "LogIn", action = "Index", id = UrlParameter.Optional }
);
这是我正在加载登录页面的 actionResult
public ActionResult LogIn(string userName, string password)
{
ViewBag.LogInButton = "Log In";
return View(new Login());
}
并查看我分配的模型
@model LogInPortal.Controllers.LogInController.Login
【问题讨论】:
-
Model.UserName是非空值吗? -
@Shyju 你是说我的模特吗?是的,它不是一个可以为空的字段 public class Login { public string UserName { get;放; } 公共字符串密码 { 获取;放; } }
-
您的代码对我来说看起来不错。您是否更改了默认路由定义?
-
没有。我的意思是 Model.UserName 属性的值
-
@Shyju - 是的,值为 null,我编辑了帖子以显示配置
标签: asp.net-mvc-4 actionresult