显示原始按钮所在的另一个按钮

时间:2016-03-31 18:40:10

标签: c# asp.net-mvc razor

目前我的表单以@using (Html.BeginForm开头 我有一个这样的提交按钮:

<input id="submitButton" type="submit" value="Update stuff" />

现在提交后,我想显示另一个按钮而不是那个按钮,例如:

<input id="continueButton" type="button" value="Continie to next page" />

所以我理解我的模型上应该有一个属性,例如@Model.ShowSubmitButton,这个属性是真是假。根据我的学习,我应该做一些接近

的事情
@if(Model.ShowSubmitButton)
    <input id="submitButton" type="submit" value="Update stuff" />
else
    <input id="continueButton" type="button" value="Continie to next page" />

但是,如果实际上我的方法是正确的,那么我无法得到Razor语法错误。所以我需要这方面的帮助。我想用MVC做,而不是用JS,因为我还不知道JS。

2 个答案:

答案 0 :(得分:2)

您最初尝试的问题以及rashfmnb为您解决的问题是由于您推断的{}。既然你说'#34;它已经修好了我的猜测&#34;,我将解释原因:

Razor将您的标记解析为HTML,除非它知道应该将其作为C#代码读取。您通常通过使用@符号启动语句来执行此操作。当你启动if时,你就这样做了。但是,您有一个HTML元素<input>。一旦关闭,Razor就不知道它应该回去解析else作为C#。它会假设它只是纯文本,应该是DOM的一部分。

通过在条件语句周围添加花括号,您可以告诉Razor解析器,当它到达结束括号时,它应该返回将其解析为C#代码。这就是为什么else现在再次被选中,只显示一个或另一个。

答案 1 :(得分:1)

像这样使用

 @if(Model.ShowSubmitButton)
 {
    <input id="submitButton" type="submit" value="Update stuff" />
 }
 else
 {
    <input id="continueButton" type="button" value="Continie to next page" />
 }
  

最后但并非最不重要的是弄清楚JS