2016-03-31 53 views
1
在我的形式

目前開始@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" /> 

但我不能讓剃刀語法錯的,如果我實際上做的方式是正確的,開始它。所以我需要這部分的幫助。我想用MVC做,而不是用JS,因爲我還不知道JS。

+0

沒有JS,你可以做到這一點。提交表單並從控制器返回相同的視圖,但通過將'ShowSubmitButton'屬性設置爲false。這樣,相同的視圖加載,現在繼續按鈕 –

+0

^^^^這是您的問題的解決方案。但我建議。開始學習js。這非常有趣。 – Shyju

+0

我知道在成功提交後,我應該在控制器中將我的布爾屬性設置爲FALSE,我的問題是如何更改我的RAZOR代碼以使用它? – Bohn

回答

1

使用這樣

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

最後但並非最不重要的把你的手髒JS

+0

我知道在成功提交後,我應該在控制器中將我的布爾屬性設置爲FALSE,我的問題是如何更改我的RAZOR代碼以使用它? – Bohn

+0

yuo已將其顯示在您的代碼中,像這樣@if(Model.ShowSubmitButton) else rashfmnb

+0

我在VisualStudio中輸入時遇到了錯誤。語法錯誤 – Bohn

2

與您最初嘗試的問題,什麼rashfmnb的答覆解決了您是因爲正如你推斷的那樣,{}。既然你說「它解決了它,我猜」,我會解釋爲什麼:

剃刀解析你的標記爲HTML,除非它知道它應該讀取它作爲C#代碼。您通常通過使用@符號開始語句來完成此操作。你在開始你的時候就這樣做了。但是,你有一個HTML元素,<input>。一旦結束,Razor不知道它應該回去解析爲C#的else。它會假設它只是純文本,應該是DOM的一部分。

通過在條件語句周圍添加大括號,您告訴Razor解析器,當它到達大括號時,它應該返回解析爲C#代碼。這就是爲什麼else現在再次拿起,只顯示一個或另一個。

+0

感謝您的解釋。 – Bohn

相關問題