我的Index.aspx視圖中有一個表單標籤。 Index.aspx包含幾個部分視圖並使用相同的模型來呈現它們。如何將部分視圖張貼到其他控制器方法
現在,當任何部分視圖張貼表單提交按鈕表單張貼到OneActionMethod。但我想要一些部分視圖將表單發佈到OtherActionMethod。
如何在不使用動作鏈接的情況下實現這一點,只需在這個特定的視圖中提交按鈕?
我已經在這個問題的評論中寫了更新。答案仍然不清楚。
我的Index.aspx視圖中有一個表單標籤。 Index.aspx包含幾個部分視圖並使用相同的模型來呈現它們。如何將部分視圖張貼到其他控制器方法
現在,當任何部分視圖張貼表單提交按鈕表單張貼到OneActionMethod。但我想要一些部分視圖將表單發佈到OtherActionMethod。
如何在不使用動作鏈接的情況下實現這一點,只需在這個特定的視圖中提交按鈕?
我已經在這個問題的評論中寫了更新。答案仍然不清楚。
我相信有一點JavaScript會讓你的工作完成。你必須鉤住表單的提交事件並改變表單的action屬性。記住動作是表單的屬性不是提交按鈕。在jQuery中,你可以做類似
$("#myform").submit(function(){
if(isFirstSubmitButton){
$(this).attr(FirstAction);
}
else if(isSecondSubmitButton)
{
$(this).attr(SecondAction);
}
return true;
});
假設他的應用程序在沒有Javascript的情況下被完全破解了。 – FlySwat 2010-09-29 04:11:36
同意FlySwat,它看起來像一個黑客。 – 2010-09-29 05:48:46
剛剛標記爲答案,因爲它更適合問題。當然,我仍然認爲這是一種黑客行爲,如果我們要以適當的方式來製作,我們應該在每個局部視圖中使用一種形式。所以我upvoted FlySwat答案:-) – 2010-09-30 00:25:58
你聽起來像你試圖在MVC中編寫「WebForms」風格。
爲什麼你有一個大表格附上你的所有部分?將它們分成獨特的形式,並且每一個都發布適當的行動。
編輯:隨着你的進一步澄清,我能想到的唯一的事情(除了重新設計使用單獨的窗體,這會導致問題,如果他們想共享數據),是張貼到一個單一的行動,然後根據特定的表單元素將請求路由到ActionA或ActionB控制器中的私有成員。
它不是一個大的形式,它的形式很小,編輯小片段:-)。所以沒關係,即使它不能改變它,這也是我被要求這樣做的方式。所以問題仍然存在:-) – 2010-09-29 03:53:27
答案是將每個單獨的片段移動到他們自己的形式。一個表單應該簡單地是一個邏輯分組數據來發布到一個動作。任何更多是濫用。您需要重新考慮您的策略以使用MVC風格。 – FlySwat 2010-09-29 03:58:59
感謝您的回答。請閱讀我的更新,我對你對如何做到這一點的看法很感興趣。 – 2010-09-29 05:52:15
不這樣做,每個局部視圖應該有它自己的Html.BeginForm(如果需要)。不要認爲Webforms有一個大的形式!使用母版頁來定義版面,而不是表格 – RPM1984 2010-09-29 03:50:56
如果我需要在一種形式下爲一個和相同的數據進行多種類型的編輯,那麼我有如下選項:edit,edit1,edit2。這些是不同類型的編輯。而且,由於我無法嵌套表格,因此做這件事的正確方法是什麼? – 2010-09-29 05:49:12