1

在 Razor (MVC 4) 中,我可以执行以下(伪)代码吗?

<div id="One" @if(THIS_ID_IS("One")) {WRITE_SOMETHING_HERE} ></div>
<div id="Two" @if(THIS_ID_IS("One")) {WRITE_SOMETHING_HERE} ></div>

我的意图是,在 DIV "One" 中将写入一个附加属性,但不会在 DIV "Two" 中写入

因此,THIS_ID_IS(string id) 应该确定 Razor-Parse 是否在 id="xyz" 的给定 DIV 内

这可能吗?

4

4 回答 4

1

您可以使用单行 if 语句来克服这种情况

<div id="One" @(THIS_ID_IS("One") ? "write something" : "") ></div>
于 2013-09-03T15:33:48.947 回答
0

尽我所能。看起来情况并非如此。

基于这两篇文章:

Razor 引擎似乎结合了代码和标记解析器。主解析器决定使用其中一个。所以解析器彼此不知道。

简而言之,在您的示例中,<div id="One"></div>并且@if(THIS_ID_IS("One"))将在不同的范围内进行解析,然后将其连接在一起。

于 2013-09-03T14:43:03.450 回答
0

因为idsunique价值观。所有 div 都有不同的 id。
所以我认为剃须刀不需要条件检查。

您可以直接将额外的属性添加到您Div的如下

<div id="One" attribute-name="Value"></div>
于 2013-09-03T14:41:44.177 回答
0

在这种情况下,我倾向于编写一个辅助方法来输出标记。这样你就不会被剃须刀的“规则”所束缚。我做了类似的事情来在 div 中输出 jQuery 滑块 html。

这也取决于您的目标受众,我很少像我们的设计师那样制作实际视图。我不喜欢将东西交给需要他们编写/理解逻辑的“创意”。

在您的情况下,它可能不是理想的解决方案,甚至可能不是矫枉过正,但可能值得一看。

http://www.asp.net/mvc/tutorials/older-versions/views/creating-custom-html-helpers-cs

于 2013-09-03T14:42:28.547 回答