Response.Write()的奇怪行为

时间:2014-06-30 10:51:12

标签: asp.net

我正在开发一个ASP.NET MVC项目。在我的控制器中,我检查ModelState是否有效,并根据结果为IsSucceed指定一个值:

if (ModelState.IsValid)
{
    ModelTutucu.modelim.IsSucceed = true; 
}

return View("YaziEkle",ModelTutucu.modelim);

在我看来,我有一个成功"类。我有Response.Write()写的一些文字给IsSucceed

的值
<div class="success">
    @if(Model.IsSucceed) {
        string success = "It is successfully saved.";
        Response.Write(success);
    }
</div>

问题是success没有出现在div中。它出现在页面顶部。当我做这样的事情时:

<div class="success">Foo</div>

&#34;富&#34;出现在div中,但我无法通过Response.Write获得相同的结果,它显示出奇怪的行为。这个问题的原因是什么?我该如何解决?提前谢谢。

1 个答案:

答案 0 :(得分:2)

您应该使用@代替Response.Write()Response.Write()在剃刀被渲染和书写之前写作,这就是为什么它出现在顶部,而不是在中间或应该在哪里。使用@可确保根据html标记将字符串呈现在应有的位置。

像:

@if (Model.IsSucceed)
{
    string success = "It is successfully saved.";
    @success
}