剃刀视图语法不承认" @"在一个HTML属性 [英] Razor View Syntax doesn't recognize the "@" in an HTML attribute

查看:133
本文介绍了剃刀视图语法不承认" @"在一个HTML属性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我从迁移MVC 2至MVC3项目和剃刀视图引擎。

在MVC 2,我有以下的html:

 < D​​IV ID =del_<%= Model.ActivityID.ToString()%GT;>< / DIV>

当使用剃刀,我尝试以下,这使得文字文本del_@Model.ActivityID.ToString()当我想del_1。

 < D​​IV ID =del_@Model.ActivityID.ToString()>< / DIV>

要解决这个问题,我用:

 < D​​IV ID =@ Model.ActivityID.ToString()_德尔>< / DIV>

有没有去让剃须刀工作,此语法?

 < D​​IV ID =del_@Model.ActivityID.ToString()>< / DIV>


解决方案

您将不得不使用 @()周围像这样的特定型号值:

 < D​​IV ID =德尔_ @(Model.ActivityID.ToString())>< / DIV>

这样做的原因是因为 del_@Model.ActivityID 看起来像一个电子邮件地址解析器,默认情况下解析器试图忽略的电子邮件地址,以便你不吨有做这样约翰@@ doe.com 一些愚蠢的电子邮件是很常见,这将是恼人的做每一次。所以在剃刀解析器工作的人只是想通:如果它看起来像一个电子邮件,忽略它。所以这就是为什么你有这种特殊的问题。

I am migrating a project from MVC 2 to MVC3 and the razor view engine.

In MVC 2, I would have the following html:

<div id="del_<%= Model.ActivityID.ToString() %>"></div>

When using razor, I tried the following, which renders the literal text "del_@Model.ActivityID.ToString()" when I want del_1.

<div id="del_@Model.ActivityID.ToString()"></div>

To get around the issue, I used:

<div id="@Model.ActivityID.ToString()_del"></div>

Is there away to make razor work with this syntax?

<div id="del_@Model.ActivityID.ToString()"></div>

解决方案

You'll have to use the @() around your particular model value like so:

<div id="del_@(Model.ActivityID.ToString())"></div>

The reason for this is because the del_@Model.ActivityID looks like an email address to the parser and by default the parser tries to ignore email addresses so you don't have to do something silly like john@@doe.com as emails are common enough that it would be annoying to do every time. So the people working on the razor parser just figured: "if it looks like an email, ignore it". So that's why you're having this particular issue.

这篇关于剃刀视图语法不承认&QUOT; @&QUOT;在一个HTML属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆