语法 - 在ActionLink的视图中的语句

时间:2014-04-18 16:55:59

标签: c# asp.net-mvc view actionlink

我有一个问题,我想要一个解决方案,通过我的许多尝试,我似乎无法找到解决方案。

问题我有两个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

有人可以建议我如何解决这个问题吗? (或者替代?!)

3 个答案:

答案 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>
<% } %>

感谢所有为我着想的人。