在一个Razor视图引擎模板,我要做到以下几点:我希望把一些的代码的一个HTML的属性的双引号之间的的。麻烦的是,我要插入的一段代码包含一些双引号本身。

<a href="Url.Action("Item", new { id = Model.Item.Id, page = page });">@page</a>

您可以很容易地看到事情是如何把可怕的错误:-)我知道我可以计算一个变量的链接,然后使用它,但我宁愿不要:

@{ var action = Url.Action("Question", new { id = Model.Question.Id, page = page }); }                   
<a href="@action">@page</a>                                        
有帮助吗?

解决方案

您不必逃避或使用剃刀什么。剃刀是足够聪明,知道什么时候引号是属性中,因为你在逃避HTML之外,当你分析它。

<a href="@Url.Action("Item", 
       new { id = Model.Item.Id, page = page })">@page</a>

该代码将正常工作 - 只要确保你在@呼叫前面的Url.Action符号,因为如果你不这样做就无法正确解析,我注意到你没有它在你的问题<。 / p>

编辑:移除;作为Url.Action不是语句。

其他提示

也许我不明白在这种情况下,你的问题请指正,但不能你只需:

@Html.ActionLink(page, "Question", new { id = Model.Question.Id, page = page })

这可能是正确的:

href="@(action)"> @page 
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top