我想发表一些有关ASP.Net MVC
的问题。我不熟悉Web开发,但是我被分配到项目的Web部分。我们正在执行以下操作:首先,我们为人员数据创建get
和set
属性:
public class Person
{
public int personID {get;set;}
public string personName {get;set;}
public string nric {get;set;}
}
登录后,我们将数据放入
Person
类对象中,并使用RedirectToAction
像这样:return RedirectToAction("profile","person",new { personID = Person.personID});
它工作正常,但参数显示在URL中。我怎么能藏起来
我可以隐藏 Action 名称吗?请通过一些示例引导我正确的方法。
最佳答案
该参数显示在URL中,因为那是RedirectToAction
的第三个参数-路由值。
默认路由为{controller}/{action}/{id}
所以这段代码:
return RedirectToAction("profile","person",new { personID = Person.personID});
将产生以下URL /路由:
/人/个人资料/ 123
如果您想要一条更清洁的路线,例如(例如):
/ people / 123
创建一条新路线:
routes.MapRoute("PersonCleanRoute",
"people/{id}",
new {controller = "Person", action = "Profile"});
像上面一样,您的URL应该干净。
另外,您可能根本不喜欢使用ID,可以使用其他一些唯一的标识符-如昵称。
因此,URL可能像这样:
人/ rpm1984
为此,只需更改您的路线:
routes.MapRoute("PersonCleanRoute",
"people/{nickname}",
new {controller = "Person", action = "Profile"});
和你的 Action 方法:
public ActionResult Profile(string nickname)
{
}
和您的RedirectToAction代码:
return RedirectToAction("profile","person",new { nickname = Person.nickname});
那是你的追求吗?
关于asp.net - ASP.NET MVC中RedirectToAction的用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4362751/