我可以用这个帮助。我有一个控制器动作,我已经修改为接受一个字符串。当我尝试在URL中传递字符串时,它仍然返回null。它假设要做的就是接受字符串,然后根据该字符串进行查询并在标头标签中返回用户的名字。我需要修改我的路线吗?
视图中的标题
<div class="nameBlock col-md-push-9">
<h4>Welcome @ViewBag.HeaderName</h4>
</div>
控制器方法
public ActionResult Index(string LanID)
{
var name = db.UserInfoTable
.Where(x => x.Lan_Id == @LanID)
.Select(x => new UserViewModel
{
AppUserName = x.FirstName + " " + x.LastName
}).FirstOrDefault();
ViewBag.HeaderName = name.AppUserName;
return View();
}
答案 0 :(得分:2)
除非您已设置路由以使用LanID
参数执行某些操作,否则MVC模型绑定器将不知道如何处理它。因此,您应该更改要使用的URL,并使用查询字符串告诉MVC参数的名称:
localhost:(portnumber)/DevArea/Dev/Index?LanID={value}
或者为配置添加一个额外的路由,例如(这是来自内存所以可能需要调整):
routes.MapRoute(
name: "LanID",
url: "{area}/{controller}/{action}/{LanID}",
defaults: new
{
area = "DevArea",
controller = "Dev",
action = "Index"
}
);