asp.net - ASP.NET MVC中RedirectToAction的用法

标签 asp.net asp.net-mvc

我想发表一些有关ASP.Net MVC的问题。我不熟悉Web开发,但是我被分配到项目的Web部分。我们正在执行以下操作:首先,我们为人员数据创建getset属性:

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/

相关文章:

asp.net-mvc - 在 ASP.NET MVC4 中检测 IE8

asp.net - .Net 配置文件困惑

asp.net - 我们什么时候需要数据类?

c# - 我无法从我的 ASP.NET MVC3 ViewModel 中获取月、日、年下拉列表

c# - 每次使用 "Not Allowed"使用 ASP Identity 登录失败(即使 'email' 和 'username' 具有相同的值))

javascript - 事件选项卡是动态更改的,但单击页面上的任意位置更改为第一个选项卡处于事件状态

c# - asp.net MVC自定义Authorize属性,传递参数和方法细节

c# - 如何在 Controller 外使用 session

c# - ResolveUrl XSS 替代方案

javascript - 验证后滚动页面显示验证弹出窗口