0

我正在使用 MVC 处理 .NET 项目,我需要创建一个指向同一页面上某个部分的链接。

以下代码在没有 MVC 的情况下运行良好:

<a href="#section1">Section 1</a>
<div id="section1">
  <h1>Section 1</h1>
</div>

现在这是我的真实网址: http://localhost:17338/MarketingCustomers/CleanData/1/1150119

而且我需要能够与 id=customerErrorSection 的 div 链接,因此 URL 应如下所示: http://localhost:17338/MarketingCustomers/CleanData/1/1150119#customerErrorSection

所以我需要在 URL 的末尾添加“#customerErrorSection”。

但是 MVC 路由将 URL 更改为 http://localhost:17338/MarketingCustomers/CleanData/1/1150119#/customerErrorSection

我一直在玩 RouteConfig 但我不知道如何创建我需要的 URL,这是我的代码不起作用:

routes.MapRoute(
                       name: "MarketingDataClean_CustomerErrorSection",
                       url: "MarketingCustomers/CleanData/{systemSourceId}/{systemSourceCustomerId}/{#customerErrorSection}",
                       defaults: new { controller = "MarketingCustomers", action = "CleanData", systemSourceId = "", systemSourceCustomerId = "" }
                   );

谢谢您的帮助!

4

4 回答 4

0

我发现了问题,

在其他 div 或面板中,需要放入所有它们的 ID:

<a href="#mainDiv#section2">Section 2</a>

第 1 部分:mainDiv,第 2 部分:第 2 部分

再次感谢大家的帮助!

于 2017-05-19T07:06:18.750 回答
0

尝试:

 routes.MapRoute(
  name: "MarketingDataClean_CustomerErrorSection",
  url: "MarketingCustomers/CleanData/{systemSourceId}/{systemSourceCustomerId}/#customerErrorSection",
  defaults: new { controller = "MarketingCustomers", action = "CleanData", systemSourceId = "", systemSourceCustomerId = "" }
);
于 2017-05-18T17:35:27.297 回答
0

我现在快接近了,以下代码在视图中可以正常工作,但是当我将它放在局部视图中时不再起作用。

<ul>
<li><a href="#section1">Section 1</a></li>
<li><a href="#section2">Section 2</a></li>
<li><a href="#section3">Section 3</a></li>
<li><a href="#section41">Section 4-1</a></li>
<li><a href="#section42">Section 4-2</a></li>
</ul>
<div id="section1">
 <h1>Section 1</h1>
</div>
<div id="section2">
 <h1>Section 2</h1>
</div>
<div id="section3">
 <h1>Section 3</h1>
</div>
<div id="section41" class="container-fluid">
 <h1>Section 4 Submenu 1</h1>
</div>
<div id="section42" class="container-fluid">
 <h1>Section 4 Submenu 2</h1>
 </div>
于 2017-05-19T06:52:27.507 回答
0

我真的不明白这里的问题。只需将 # 部分省略即可。

routes.MapRoute(name: "MarketingDataClean_CustomerErrorSection",
                url: "MarketingCustomers/CleanData/{systemSourceId}/{systemSourceCustomerId}",
                defaults: new { controller = "MarketingCustomers", action = "CleanData", systemSourceId = "", systemSourceCustomerId = "" });

然后使用 URL: http://localhost:17338/MarketingCustomers/CleanData/1/1150119#customerErrorSection

如果您想使用Url.Action帮助程序,请像这样使用它:

@Url.Action("CleanData", "MarketingCustomers", new { systemSourceId = 1, systemSourceCustomerId = 1150119})#customerErrorSection
于 2017-05-18T17:38:02.287 回答