2017-09-27 51 views
0

我有一个Web应用程序ASP.Net MVC 4在VS 2017. 我做了一个自定义帮手(链接)。 我调试和自定义助手输出正确的链接: 像这样:错误的URL在鼠标悬停在剃刀

<a href="MyController/MyAction?Id=3" id="MyLink">Click here</a> 

此外,在浏览器的查看源代码,它显示正常。

但是,当我鼠标放在链接的URL这样表示:

http://localhost:1234/MyController/MyController/MyAction?Id=3 

也就是说,控制器部件出现重复,当然 的,当我点击,它不会去的正确的目标。

任何想法,发生了什么?

+1

你犯了一个自定义链接帮手。它会导致错误。您需要有关该错误的帮助。然后请阅读[问],并包括您的自定义链接助手的实际代码。 – CodeCaster

回答

1

您似乎在输出相对URL。相对于当前显示的URL,相对URL始终是.. ahem ..

您可能希望在相对URL之前放置一个斜杠,以使其相对于网站的根,而不是相对于当前URL。

<a href="/MyController/MyAction?Id=3" id="MyLink">Click here</a> 
+1

哪些工作正常,直到您将应用程序部署为网站内的应用程序,例如'FooApp'。然后链接转到'http:// localhost/MyController'而不是'http:// localhost/FooApp/MyController'。有一个原因MVC带有链接助手,他们很好地工作。不要重新发明轮子。 – CodeCaster

+0

你说得对,Sam Axe。我添加了一个斜杠,它显示确定, –

+0

是的我使用MVC附带的帮助程序,但是这次我需要一个自定义帮助程序,因为我需要一些逻辑在链接内显示不同的内容和标记(取决于条件)。为了简单起见,我没有在答复中列入。 –

0

在上述Url.Action方法中,第一参数是动作方法的名称,第二个参数是在其中此操作方法存在控制器的名称。

Url.Action in ASP.NET MVC

<a href="@(Url.Action("MyAction","MyController",new{Id=3}))" id="MyLink">Click here</a>