gpt4 book ai didi

c# - 如何将 url 更改为模型的属性之一?

转载 作者:太空宇宙 更新时间:2023-11-03 11:02:55 25 4
gpt4 key购买 nike

让我简单地解释一下我想要什么:我有一个名为 Section 的模型。我的部分模型有一个名为 UrlSafe 的属性。我现在在 url 中显示我的 urlsafes。这意味着我的 url 是这样的:

www.test.com/section/show/(the section's urlsafe goes here)

但我现在想做的是从 url 中删除 section/show。我想这样:

www.test.com/(my section's urlsafe)

更多信息:

1- 我在 MVC3 下工作

2- 我的模型是这样的:

public class Section
{
public int SectionId { get; set; }
public string Name { get; set; }
public string Title { get; set; }
public string MetaTag { get; set; }
public string MetaDescription { get; set; }
public string UrlSafe { get; set; }
public string Header { get; set; }
public string ImageName { get; set; }
}

3- 我的链接是这样的:

<a href="@Url.Action("Show", "Section", new { sectionUrl = sectionItem.UrlSafe }, null)">@sectionItem.Name</a>

4- 我的 Controller 是这样的:

public ActionResult Show(string sectionUrl)
{
var section = sectionApp.GetSectionBySectionUrl(sectionUrl);
return View(section);
}

5- 最后我在 Global.asax 中有了这些行:

routes.MapRoute(
name: "Section",
url: "{controller}/show/{sectionUrl}",
defaults: new { controller = "Section", action = "Show", sectionUrl = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{name}",
defaults: new { controller = "Home", action = "Index", name = UrlParameter.Optional }
);

你的解决方案是什么?

谢谢。

最佳答案

原则上你只需要改变这个:

routes.MapRoute(
name: "Section",
url: "{controller}/show/{sectionUrl}",
defaults: new { controller = "Section", action = "Show", sectionUrl =
UrlParameter.Optional }
);

为此:

routes.MapRoute(
name: "Section",
url: "{sectionUrl}",
defaults: new { controller = "Section", action = "Show" }
);

请注意,我已经从 sectionurl 组件中删除了默认值。这很重要,因为如果 sectionurl 是可选的,那么访问 test.com 会将您定向到 Section/Show,因为无参数 URL 将匹配该路由。强制使用此参数意味着只有具有单个段的 url 才会匹配此模式。这可能仍然会导致问题,但至少访问 test.com 仍会将您带到您的主页。

免责声明

乱用路由可能会对应用程序其余部分的功能产生严重影响。特别是,它可能会严重破坏现有页面的导航。

我强烈建议您重新审视一下您正在做的事情,看看是否有更好的方法来达到预期的结果。在不知道上下文的情况下,我必须说在模型参数中存储 URL 似乎不是一个好主意。

关于c# - 如何将 url 更改为模型的属性之一?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17039244/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com