Asp.net mvc 我是否应该使用Response。直接从视图中写入?

Asp.net mvc 我是否应该使用Response。直接从视图中写入?,asp.net-mvc,views,Asp.net Mvc,Views,我一直试图避免直接在MVC视图中使用Response.Write(…)。原因是我只需要键入字符串文本,而视图引擎知道该做什么。然而,在某些情况下,我似乎创建了太多的尖括号()。那么,您认为这两个代码段中哪一个更容易接受 <% if (true) { Response.Write(Model.SomeValue); } %> 或 这就是Html助手存在的原因(尽可能避免使用意大利面代码): 每次您需要在视图中编写一个if语句时,您可能会问自己这样一个问题:编写一个帮助器方

我一直试图避免直接在MVC视图中使用Response.Write(…)。原因是我只需要键入字符串文本,而视图引擎知道该做什么。然而,在某些情况下,我似乎创建了太多的尖括号()。那么,您认为这两个代码段中哪一个更容易接受

<% if (true)
{
  Response.Write(Model.SomeValue);
} %>


这就是Html助手存在的原因(尽可能避免使用意大利面代码):



每次您需要在视图中编写一个
if
语句时,您可能会问自己这样一个问题:编写一个帮助器方法(作为一个额外的可以进行单元测试的方法)不是更好吗?

这就是Html帮助器存在的原因(尽可能避免使用意大利面代码):



每次您需要在视图中编写一个
if
语句时,您可能会问自己这样一个问题:是否最好编写一个helper方法(作为奖励,可以进行单元测试)?

第三种可能性如何

<%= condition ? Html.Encode(Model.SomeValue) : "" %>


虽然在实践中,除了最简单的逻辑之外,你应该完全不去考虑它。要么在控制器中完成工作,要么将逻辑封装在某种HTML帮助程序中。

第三种可能性如何

<%= condition ? Html.Encode(Model.SomeValue) : "" %>

虽然在实践中,除了最简单的逻辑之外,你应该完全不去考虑它。要么在控制器中完成工作,要么将逻辑封装在某种HTML帮助程序中。

或者第四个:

或第四个:


你是说
Html.Encode(Model.SomeValue)
@tvanfosson:为什么是Html.Encode(Model.SomeValue)?假设
Model.SomeValue
源于用户输入,
Html.Encode()
你不是说
Html.Encode(Model.SomeValue)
@tvanfosson:为什么是Html.Encode(Model.SomeValue)?假设
Model.SomeValue
源于用户输入,
Html.Encode()
如果属性不是值类型,我会使用
Html.Encode(Model.SomeValue)
,如果属性不是值类型,我会使用
Html.Encode(Model.SomeValue)
<%= condition ? Html.Encode(Model.SomeValue) : "" %>