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 不匹配。

另一方面,如果链接指向外部资源,那么类似于建议的&lt;a href="http://myurltest.com/@check1/go/5/true"&gt; 就可以了。

祝你有美好的一天,

阿尔伯托

【讨论】:

我认为任何在“祝你有美好的一天,阿尔贝托”这一有用答案上签名的人至少应该得到一些支持。【参考方案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)---路由和数据传递

如何将可操作的控制字符从 JSON 文本元素传递到 razor 组件 Blazor 变量

MVC Razor 隐藏输入和传递值

如何将两个模型组合成一个模型并使用 asp.net MVC razor 将其传递给查看