加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

在asp.net mvc中的RedirectToAction用法

发布时间:2020-12-16 00:41:01 所属栏目:asp.Net 来源:网络整理
导读:我想发布关于ASP.Net MVC的一些问题。我不熟悉web开发,但我被分配到一个项目的Web部分。我们正在做以下事情:首先,我们创建get设置人员数据的属性: public class Person{ public int personID {get;set;} public string personName {get;set;} public str
我想发布关于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});

那是你以后吗?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读