页面内的 MVC Link
MVC Link inside a page
我在使用 MVC 的 .NET 项目中工作,我需要将工作 link 指向同一页面上的一个部分。
以下代码在没有 MVC 的情况下也能正常工作:
<a href="#section1">Section 1</a>
<div id="section1">
<h1>Section 1</h1>
</div>
现在这是我的真实 URL:
http://localhost:17338/MarketingCustomers/CleanData/1/1150119
而且我需要能够 link 使用带有 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 = "" }
);
感谢您的帮助!
尝试:
routes.MapRoute(
name: "MarketingDataClean_CustomerErrorSection",
url: "MarketingCustomers/CleanData/{systemSourceId}/{systemSourceCustomerId}/#customerErrorSection",
defaults: new { controller = "MarketingCustomers", action = "CleanData", systemSourceId = "", systemSourceCustomerId = "" }
);
我不太明白这里的问题。只留下# 部分。
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
我快接近了,下面的代码在视图中工作正常,但是当我把它放在局部视图中时就不再工作了。
<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>
我发现了问题,
在其他div或panel里面,需要放入所有的ID:
<a href="#mainDiv#section2">Section 2</a>
Div 1:主要Div,和Div 2:section2
再次感谢大家的帮助!
我在使用 MVC 的 .NET 项目中工作,我需要将工作 link 指向同一页面上的一个部分。
以下代码在没有 MVC 的情况下也能正常工作:
<a href="#section1">Section 1</a>
<div id="section1">
<h1>Section 1</h1>
</div>
现在这是我的真实 URL: http://localhost:17338/MarketingCustomers/CleanData/1/1150119
而且我需要能够 link 使用带有 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 = "" }
);
感谢您的帮助!
尝试:
routes.MapRoute(
name: "MarketingDataClean_CustomerErrorSection",
url: "MarketingCustomers/CleanData/{systemSourceId}/{systemSourceCustomerId}/#customerErrorSection",
defaults: new { controller = "MarketingCustomers", action = "CleanData", systemSourceId = "", systemSourceCustomerId = "" }
);
我不太明白这里的问题。只留下# 部分。
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
我快接近了,下面的代码在视图中工作正常,但是当我把它放在局部视图中时就不再工作了。
<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>
我发现了问题,
在其他div或panel里面,需要放入所有的ID:
<a href="#mainDiv#section2">Section 2</a>
Div 1:主要Div,和Div 2:section2
再次感谢大家的帮助!