我有一个问题,我想要一个解决方案,通过我的许多尝试,我似乎无法找到解决方案。
问题我有两个ActionLinks,我想在我的视图中操作。
方案 在强类型列表视图中...如果用户没有输入他们的foo,那么他们可以选择创建新的foo。 如果用户输入了他们的foo,那么他们将使用 only 选项来创建新的foo2。 (这当然会以if else条件表示)
请有人指导我找到比下面的尝试更好的解决方案。
<% if (Model.Count() = 0)
{ %>
<p>
<%: Html.ActionLink("Create foo", "Createfoo") %>
</p>
<% } else if (Model.Count() != 0)
{ %>
<p>
<%: Html.ActionLink("Your foo2", "foo2") %>
</p>
<% } %>
// table logic
<% foreach (var item in Model) { %>
<td>
<%: Html.DisplayFor(modelItem => item.foo_id) %>
</td>
//more table logic blah blah blah
有人可以建议我如何解决这个问题吗? (或者替代?!)
答案 0 :(得分:0)
应该是
if (Model.Count == 0)
您需要==
进行比较。另外,我建议使用属性 Count
而不是函数Count()
。
答案 1 :(得分:0)
Model.Count()Model.Count不存在
- 当计数大于0时,您可以使用两个视图并在控制器中返回不同的视图。
- 您可以将Action链接名称和Action方法名称放在Model
中在控制器中:
if (xx.Count()==0)
return View("first",model)
else
return View("second",model).
或在控制器中:
if (xx.Count() == 0
{
model.ActionMethodName = "Createfoo";
model.ActionLinkName="Create foo";
}
else
{
model.ActionMethodName = "foo2";
model.ActionLinkName="Your foo2";
}
在视图中,您可以使用&lt;%:Html.ActionLink(Model.ActionLinkName,Model.ActionMethodName)%&gt;
答案 2 :(得分:0)
在进一步研究之后,我发现它确实有效,只需要将()添加到model.count。
<% if (Model.Count() == 0)
{ %>
<p>
<%: Html.ActionLink("Create foo", "Createfoo") %>
</p>
<% }
else if (Model.Count() >= 1)
{ %>
<p>
<%: Html.ActionLink("Your foo2", "foo2") %>
</p>
<% } %>
感谢所有为我着想的人。