2009-07-15 49 views
6

我有一個導航欄,它使用JQuery在註冊過程的4個階段之間移動。發佈表單並重定向到操作ASP.NET MVC

但是我需要確保一切正在JS禁用。

所以我有這4個鏈接圖像在頁面的底部,我需要這樣如果一個被點擊它發佈到當前的行動,所以我可以保存所有的表單數據,然後重定向到下一個階段。

重定向很容易,因爲我只是在路由或表單中傳遞一個參數,但我不知道如何使用操作鏈接發佈該方法。

我可以把4個不同類別的提交按鈕用於圖像背景等,但這種感覺不對。

任何想法?

回答

2

你可以有多個提交按鈕你形式:

<input type="submit" name="step1" value="Step 1"/> 
<input type="submit" name="step2" value="Step 2"/> 
<input type="submit" name="step3" value="Step 3"/> 

,並在你的行動:

public ActionResult Action(FormCollection form) 
{ 
    if (!string.IsNullOrEmpty(form["step1"])) 
    { 
     // Step 1 button was clicked 
    } 
    else if (!string.IsNullOrEmpty(form["step2"])) 
    { 
     // Step 2 button was clicked 
    } 
    else if (!string.IsNullOrEmpty(form["step3"])) 
    { 
     // Step 3 button was clicked 
    } 
    ... 
} 
3

沒有Javascript,一個簡單的鏈接不能通過POST提交。你必須使用提交按鈕來完成它。幸運的是,HTML提供了一個簡單的方法來做到圖像提交按鈕:

<input type="image" src="http://url/to/image" alt="Step 1" id="btnStep1" /> 

您可以隨時添加的jQuery處理的Javascript的能力:

$('#btnStep1').click(function(){...}); 
+0

謝謝你看起來像我將有一個4提交按鈕的形式。 雖然我怎麼知道按鈕被點擊了? – ddd 2009-07-15 22:03:09

2

您可以使用我在the net上找到的屬性,該屬性處理同一表單上的多個按鈕。這將決定哪個動作在控制器上執行。因此,您可以在控制器上執行4個操作,並根據哪個按鈕被點擊而執行正確的操作,而不管它被調用的位置。

這麼小的例子;標記......

<input type="submit" name="action" value="step1"/> 
<input type="submit" name="action" value="step2"/> 
<input type="submit" name="action" value="step3"/> 
<input type="submit" name="action" value="step4"/> 
控制器

則...

[HttpPost] 
    [MultiButton(MatchFormKey = "action", MatchFormValue = "step1")] 
    public ActionResult Step1(/* parameters */) { ... } 

    [HttpPost] 
    [MultiButton(MatchFormKey = "action", MatchFormValue = "step2")] 
    public ActionResult Step2(/* parameters */) { ... } 

    [HttpPost] 
    [MultiButton(MatchFormKey = "action", MatchFormValue = "step3")] 
    public ActionResult Step3(/* parameters */) { ... } 

    [HttpPost] 
    [MultiButton(MatchFormKey = "action", MatchFormValue = "step4")] 
    public ActionResult Step4(/* parameters */) { ... } 

然後,您可以在註冊過程中(在任何步驟之間單擊大概一旦驗證完成後,你已經通過了各第一)相對容易。

希望這可以幫助別人。我只是提出了問題發佈日期,但認爲我會發布這個無論如何:-)

相關問題