2013-09-26 39 views
0

這是我知道可以通過在JQuery或Javascript中編寫一個函數來完成的事情,但它似乎是一種事情,應該可以非常簡潔地通過添加在HtmlHelper的HtmlAttributes中輸入正確的字符串,給出瞭如何使用靈活的MVC4。從一個OnChange事件調用一個ActionResult [MVC4]

我可能錯過了一些非常簡單的東西,所以請原諒我,如果我問明顯。

採取這樣的情況:

  1. 你必須要修改如下

  2. 工作MVC4應用你要調用一個ActionResult在控制器修改頁面的內容對用戶改變了複選框的值的響應。

  3. 該複選框是一個形式裏面,但你不想提交表單,因爲這將導致其他的驗證要發生哪些更好的左邊,直到用戶準備提交

  4. 你想模型傳遞到ActionResult的,就如同將與已經發生了一個提交

  5. 頁變化不能在客戶端完成,因爲一個新的模式將建成

我已經TR ied將$ .Post放入複選框的HtmlAttributes中,該控件將控件引導至ActionResult就好了,但我無法解決如何在不編寫函數的情況下傳遞模型。考慮到關於MVC的其他一切都是以非常直觀的方式傳遞模型,這讓我覺得必須有一種方法來乾淨地做這件事......是嗎?

非常感謝

+2

初始頁面有多少變化?是否可以通過從部分視圖中獲取HTML片段並將結果替換/附加到當前頁面來實現? –

+0

嗨,嗯,是的,這可能是一種更新頁面的方式,但我還沒有留下如何激活actionresult這樣做的問題嗎?行動結果需要檢查模型的當前狀態,以決定採取什麼行動... – Geoffff

+1

難道你不能只是做'$ .post('@ Url.Action(「Bar」,「Foo」)之類的東西',$('#myForm')。serialize(),function(data){/ *對響應做一些事情* /});'? MVC應該認識到傳入的JSON,並從中填充你的模型(我認爲) –

回答

1

只是serialize()形式和發送數據; MVC模型聯編程序應該完成以下工作:

$.post('@Url.Action("Bar", "Foo")', 
    $('#myForm').serialize(), 
    function(data) { /*do something with the response*/ }); 
相關問題