在asp.net mvc中的RedirectToAction用法

我想发布关于ASP.Net MVC的一些问题。我不熟悉web开发,但我被分配到一个项目的Web部分。我们正在做以下事情:首先,我们创建get&设置人员数据的属性
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中。我怎么可以隐藏他们呢
我可以隐藏动作名称吗?请指导我正确的方法,一些例子。

解决方法

该参数显示在URL中,因为这是RedirectToAction的第三个参数是路由值。

认路由为{controller} / {action} / {id}

所以这段代码

return RedirectToAction("profile",new { personID = Person.personID});

将产生以下URL /路由:

/人/资料/ 123

如果你想要一个更干净的路线,像这样(例如):

/人/ 123

创建新路线:

routes.MapRoute("PersonCleanRoute","people/{id}",new {controller = "Person",action = "Profile"});

而且你的URL应该是干净的,就像上面那样。

或者,您可能不喜欢使用ID,您可以使用一些其他唯一标识符,如昵称。

所以URL可能是这样的:

人/ rpm1984

要做到这一点,只需改变路线:

routes.MapRoute("PersonCleanRoute","people/{nickname}",action = "Profile"});

和你的行动方法

public ActionResult Profile(string nickname)
{

}

和您的RedirectToAction代码

return RedirectToAction("profile",new { nickname = Person.nickname});

那是你以后吗?

相关文章

这篇文章主要讲解了“WPF如何实现带筛选功能的DataGrid”,文...
本篇内容介绍了“基于WPF如何实现3D画廊动画效果”的有关知识...
Some samples are below for ASP.Net web form controls:(fr...
问题描述: 对于未定义为 System.String 的列,唯一有效的值...
最近用到了CalendarExtender,结果不知道为什么发生了错位,...
ASP.NET 2.0 page lifecyle ASP.NET 2.0 event sequence cha...