【发布时间】:2016-11-11 18:25:51
【问题描述】:
简介
我正在开发用户可以注册的演示应用程序。用户表有“用户名”字段。“家庭”控制器中有“详细”操作接受字符串“用户名”的参数。
代码
public ActionResult Detail (string username)
{
return View();
}
那么url就是
www.example.com/home/Detail?username=someparam
问题
我可以这样设置路线吗?
www.example.com/someparam
如果可能的话,请告诉我。任何帮助或参考将不胜感激。
感谢您的宝贵时间。
【问题讨论】:
-
除非您创建一个路由约束,在每次发出任何请求时都查找数据库(这会导致性能不佳),否则您不能。
-
@StephenMuecke 感谢您的回复,我了解性能问题。我应该至少包含操作吗?
-
是的,您可以创建一个路由定义,例如
url: Detail/{username}",默认为HomeController中的Detail()方法(或者它可以是Users/{username}或任何使其独一无二的东西)跨度> -
@StephenMuecke 我添加了 rout 与 url: "{username}" 不可为空。有效。我们将需要检查用户是否存在,否则会重定向。你能建议它是错误的还是好的...谢谢
-
如果你想这样做,那么你需要一个路由约束来检查参数是否是用户(通过查找用户存储库),如果它不是用户,则返回
false所以然后搜索下一条路线。
标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4 asp.net-mvc-routing