2011-03-14 52 views
0

喜 我有一个名为isEnglishMVC,使有条件的输出最简单的方法

变量,如果这是真的,我想输出是这样的:

<div orientation="left"> </div> 

否则:

<div orientation="right"> </div> 

下面的代码无法编译:

<div orientation="<%=isEnglish?? %>left<%:%>right<% %>"> </div> 

我知道一种很长的方式,通过使用(if)和Writer.Write方法

还有另一种简单的方法吗?

回答

3
<div orientation="<%= isEnglish? "left" : "right" %>"> </div> 
+0

hhhhhhh形式,我怎么这么笨我,我怎么会错过这个! – 2011-03-14 14:16:38

3

你可以使用一个条件语句:

<div orientation="<%= isEnglish ? "left" : "right" %>"></div> 

或者,最好是(至少对我来说),你会从视图中完全删除这一逻辑并创建一个视图模型。然后,您可以将逻辑放置在Model和ViewModel之间的映射中。

这样,在你查看你没有意大利面条的代码。它看起来是这样的:

<div orientation="<%= Model.Orientation %>"></div> 
+0

你是对的,但我讨厌看到控制器生成的html代码,我的意思是,当你检查英语的变量,并填写与像(右)的字符串视图模型,并把它传递给视图。我对吗 ? – 2011-03-14 14:27:09

+0

@Nour Sabouny - 你不会产生控制器整片的标记。你只是简单地填充字符串“左”或“右”。 – 2011-03-14 14:27:57

+0

OK,认为这是另外一个问题,是不是正确填写控制器的ASP视图的一部分?我知道在我的情况下,我不必,但正如你所建议的,有时你会发现自己有义务这样做! – 2011-03-14 14:44:43

1

你想要的代码是这样的:

<div class="<%= isEnglish ? "left" : "right" %>"></div> 

但是如果你使用MVC,更清洁的语法检查剃刀。