2012-05-25 38 views
0

我有一個asp.net mvc應用程序,我正在使用Webgrid來列出客戶。在jQuery UI對話框中加載和編輯數據

我想編輯jQuery對話框中的客戶數據,所以我認爲在我的控制器上執行一個操作,返回PartialView是最好的方法。問題是這個PartialView有一些javascript代碼來驗證這個輸入(我使用jQuery驗證在客戶端驗證)。我的問題是:

  1. 所有腳本來驗證對話框在我的形式和jQuery和AJAX發送到服務器,應該是在頁面上還是有什麼辦法可以把它放在PartialView?

  2. 在我的對話框($ .post,$ .get,.load方法等)上加載partialView的最佳方式是怎樣的?莫爾安全地使用郵寄?

  3. 是否有任何示例代碼發佈或任何鏈接show-me?我希望看到一些代碼樣本:)

謝謝

+0

關於#1,您正在做服務器端驗證以及客戶端驗證,對嗎?你不能*完全依靠客戶端驗證。 – RustyTheBoyRobot

+0

是的,但我想看看如何在jquery ui對話框中加載ajax! –

回答

1

This SO answer應該幫助你與你的PartialView加載jQuery UI的對話,我的經驗是,一個PartialView可以包含JavaScript,但只有當它的服務,如果它是一個視圖,即部分視圖中的JavaScript從另一個PartialView調用我不工作

1

有多種方法來加載一個局部視圖到你的jQuery對話框。它採用最安全的方法,即通過頁面加載加載部分視圖。這樣的事情:

<div id="mydialog"> 
    @Html.Partial("MyAction", "MyController") 
</div> 

然後使用jquery我把這個div塊轉換成jquery對話框。

<script type="text/javascript"> 
    $(document).ready(function() { 
    $("#mydialog").dialog();  
    }); 

//this function can be used in onclick handler from anywhere to show the dialog. 
function OpenDialog() 
{ 
     $("#mydialog").dialog("open"); 
} 
</script> 

爲什麼我認爲它是安全的,因爲所有類型的驗證工作得非常好,還可以應用代碼的可重用性。但是,您也可以動態地將部分視圖加載到對話框中,正如jimmym所建議的那樣。你需要小心這裏的兩個陷阱。

  1. jquery unobtrusive必須解析新加載的表單。你可以做這樣的事情。

    $ .validator.unobtrusive.parse($( '#myForm的'))

  2. 確保您不加載嵌套形式。