MVC 4 - Razor - 将变量传递到 href url
Posted
技术标签:
【中文标题】MVC 4 - Razor - 将变量传递到 href url【英文标题】:MVC 4 - Razor - Pass a variable into a href url 【发布时间】:2014-03-16 15:24:30 【问题描述】:如何将变量传递到 url?
我尝试的是这个,但这不起作用。网址仅显示:
http://myurltest.com
而不是完整路径
@if(check1 != "d")
<li>
<div class="a"></div>
</li>
<li>
<div class="b"></div>
</li>
<li>
<a href="http://myurltest.com/" + @check1 + "/go/5/true">
<div class="c"></div>
</a>
</li>
【问题讨论】:
【参考方案1】:像这样:
<a href='@string.Format("http://myurltest.com/0/go/5/true", check1)'>
重点是将整个 URL 插入到标记中,而不是结合标记和代码部分。
【讨论】:
非常感谢...它工作得很好.. +1 我接受在我允许的情况下在 5 分钟内回答你.. 这是否缺少结束语) 是否可以使用@html.ActionLink("Name", "CompleteURL")
生成等效的html?我试过了,但是生成的链接(可以说:http://website/controllerB/actionmethodB?id=aaaxxx
)被添加到 current url 中。生成的最终链接是 - http://website/controllerA/http:/controllerB/actionmethodB?id=aaaxxx
。
@barnes,这取决于您生成链接的准确程度。您能否为此发布一个单独的问题,因为 cmets 不适合讨论此类事情?
当网站作为应用程序托管并且您无法获得整个路径时,这不起作用,您可以将其静态创建为 var,但出于维护目的将是一个令人头疼的问题替换你的 url 的所有元素,你应该考虑@Alberto 回答这个案例【参考方案2】:
在 C# 6 中使用字符串插值
<a href="@($"http://myurltest.com/check1/go/5/true")" >
Wiki
在计算机编程中,字符串插值或变量插值(也称为变量替换或变量扩展)是评估包含一个或多个占位符的字符串文字的过程,产生占位符被其对应值替换的结果。它是一种简单的模板处理形式。2 或者,在形式上,是一种准引用(或逻辑替换解释)的形式。与字符串连接相比,字符串插值允许更简单、更直观的字符串格式化和内容规范。
MSDN
【讨论】:
加一个用于使用字符串插值,最新响应【参考方案3】:如果它指向您的网站/应用程序的操作,那么您应该使用
@Url.Action(your parameters)
在您的 href 属性中。
请注意,您还可以使用
生成完整链接@Html.ActionLink(your parameters)
那些是重载的方法,Intellisense 或 google 会描述所有可能的替代方案。
通常,对于指向同一网站的操作的链接,这些方法比处理 url 字符串(如建议的 "http://myurltest.com/@check1/go/5/true"
)更好,因为可以在本地机器上使用(其中基本 URL 是 localhost:someport)并且优于 @987654324 @(相对路径),因为避免了部署时 URL 不匹配。
另一方面,如果链接指向外部资源,那么类似于建议的<a href="http://myurltest.com/@check1/go/5/true">
就可以了。
祝你有美好的一天,
阿尔伯托
【讨论】:
我认为任何在“祝你有美好的一天,阿尔贝托”这一有用答案上签名的人至少应该得到一些支持。【参考方案4】:试试这个,它正在工作
<a href="http://myurltest.com/@check1/go/5/true">
【讨论】:
【参考方案5】:试试这个:
<a href="@Url.Content("~/id?" + check1)">click here</a>
【讨论】:
以上是关于MVC 4 - Razor - 将变量传递到 href url的主要内容,如果未能解决你的问题,请参考以下文章
C# MVC 4 RAZOR - JSON 使用 @foreach 从控制器返回列表到视图
如何使用 Asp.net MVC Razor 将隐藏字段值从一个控制器传递到另一个控制器
APS.NET MVC + EF (04)---路由和数据传递