在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});

那是你以后吗?

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....