asp.net-mvc – ASP.Net MVC路由到用户名
|
我正在尝试创建一个带有用户名的路由 所以URL是mydomain.com/abrudtkhul(abrudtkhul是用户名) 我的应用程序将有基于用户名的公共配置文件(例如:http://delicious.com/abrudtkuhl)。我想复制这个URL方案。 我如何在ASP.Net MVC中构建这个?我也在使用会员/角色提供商。 解决方法这是您要做的,首先定义您的路线图:routes.MapRoute(
"Users","{username}",new { controller = "User",action="index",username=""});
这允许你做的是设置以下惯例: >控制器:用户(UserController类型) 所以当你请求url http://mydomain.com/javier时,这将被转换为UserController.Index(string username)的调用,其中username被设置为javier的值。 现在,由于您计划使用MembershipProvider类,因此您希望更像这样: public ActionResult Index(MembershipUser usr)
{
ViewData["Welcome"] = "Viewing " + usr.UserName;
return View();
}
为了做到这一点,您需要使用ModelBinder来完成从用户名到MembershipUser类型的工作。为此,您将需要创建自己的ModelBinder类型并将其应用于Index方法的用户参数。你的课程可以看起来像这样: public class UserBinder : IModelBinder
{
public ModelBinderResult BindModel(ModelBindingContext bindingContext)
{
var request = bindingContext.HttpContext.Request;
var username = request["username"];
MembershipUser user = Membership.GetUser(username);
return new ModelBinderResult(user);
}
}
这允许您将Index方法的声明更改为: public ActionResult Index([ModelBinder(typeof(UserBinder))]
MembershipUser usr)
{
ViewData["Welcome"] = "Viewing " + usr.Username;
return View();
}
如您所见,我们已经将[ModelBinder(typeof(UserBinder))]属性应用于方法的参数。这意味着在调用您的方法之前,将调用您的UserBinder类型的逻辑,因此在调用该方法时,您将具有一个您的MembershipUser类型的有效实例。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc-2 – 使用ASP.NET MVC 2 C#4的最佳BDD框架是什
- asp.net-mvc-2 – TempData未按预期清除
- asp.net – 如何将服务器时间转换为本地时间
- 在ASP.NET中流式传输大文件上传
- asp.net-mvc-3 – 在MVC 3的AuthorizeAttribute中获取模型数
- 使用实体框架在ASP.Net中创建报表
- asp.net-mvc – LiveReload ASP.net MVC Web应用程序与Grun
- Asp.Net MVC验证 – 依赖字段
- asp.net-mvc – WebApi Action过滤器调用两次
- asp.net-mvc-3 – 在Asp.net MVC中为optgroup功能使用Helpe
- asp.net-mvc – 如何将服务器错误的http状态代码
- asp.net-mvc-3 – 带有EF 4.1和EntityState.Modi
- ASP到ASP.NET会话变量
- asp.net-mvc – ASP.NET MVC Javascript ActionR
- asp.net-mvc – 授权属性不工作MVC 5
- asp.net-mvc – ASP.NET身份与简单的会员优点和缺
- StructureMap和ASP .Net Web API和.Net Framewor
- ASP.NET RadioButton混淆名称(组名)
- asp.net-mvc – 在MVC 3中回发到控制器操作后,Vi
- asp.net-mvc – ASP.NET MVC获取上次添加记录的I
