在(视图)中创建(if)和(else)语句时遇到问题.该语句的目的是隐藏以下代码:
<div id="clearbuton"><p>@Html.ActionLink("Clear", "")</p>
<p> @String.Format("Total of {0} results", ViewBag.CountRecords)
</div>
Run Code Online (Sandbox Code Playgroud)
视图是隐藏代码的最佳位置还是控制器更适合任务.
仅当搜索查询不为空时才显示代码.下面的代码是搜索表单.
@using (Html.BeginForm())
{ <div id="borderSearch">
@Html.TextBox("searchString", "")
</div>
<input type="submit" value="Search News Archives" />
}
Run Code Online (Sandbox Code Playgroud)
来自控制器的一些代码:
if (Request.HttpMethod == "GET")
{
searchString = search;
}
else if (searchString == "")
{
return RedirectToAction("ErrorSearch");
}
else
{
page = 1;
}
ViewBag.search = searchString;
Run Code Online (Sandbox Code Playgroud)
有关如何实现这一目标的任何建议都将受到欢迎.
好吧,如果我完全理解你的问题,我不是百分百肯定,但是如果我听到你的话,你不确定如何在第一段代码周围加上if语句和/或你是否应该这样做.
首先,这是"如何" - 你只是使用@if(如果这看起来很明显,请原谅我- 我不是想侮辱你的智慧):
@if (!string.IsNullOrEmpty(ViewBag.search))
{
<div id="clearbuton"><p>@Html.ActionLink("Clear", "")</p>
<p> @String.Format("Total of {0} results", ViewBag.CountRecords)</p>
</div>
}
Run Code Online (Sandbox Code Playgroud)
现在推理 - 你应该在视图中放一个"if"语句来显示或隐藏HTML吗?是的,一点没错.这就是MVC中为视图设计的内容.控制器用于执行查询和计算结果计数以及操作数据,但是视图需要获取结果并实际将它们呈现为HTML.因此,在这种情况下,我们依靠控制器来设置ViewBag.search基于此的值,视图可以显示或隐藏特定的HTML块.控制器不会(也不应该)知道HTML.
这是否回答你的问题?
PS-如果您有兴趣,可以使用Razor语法快速参考:http:
//haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx
| 归档时间: |
|
| 查看次数: |
9266 次 |
| 最近记录: |