2012-12-05 46 views
0

目標:什麼是最好的做法來發送消息

呼叫動作並顯示顯示的結果「成功/錯誤」的消息,

問題:

其實,我知道如何使用JQuery來做到這一點,但我不知道這是否是最好的方式,

??我想知道如果從服務器端做所有這些可能會更好,我的意思是隻調用一個ActionLink,然後執行一個JavaScript或從服務器返回一條消息。

驗證碼: MVC3 C#

查看:

$('#btnValidate') 
     .click(function(e) { 
     $.ajax({ 
      url: "/Valoration/ValidateHvm" , 
      type: "POST", 
      success: function(data, status, xhr) { 
          if(data.success){ 
           alert('success'); 
          }else{ 
           alert('error'); 
         }, 
      error: function(xhr, status, err) { 
       alert('error'); 
      } 
     }); 

    }); 

控制器:

[HttpPost] 
    public ActionResult ValidateHvm() 
    { 
     var result = HvmService.ValidateProject; 
     return Json(new { success = result}); 
    } 
+2

有沒有錯的解決方案,它似乎是最好的方式對我來說,你可以使用ModelState.AddModelError(),如果你希望,但你的意志的ActionResult需要重新顯示模型的視圖 – CR41G14

+0

我不知道是否有敏感的談論關於用戶在這個問題上的期限...我敢肯定,你在家裏沒有什麼比這更好的發佈狗屎在stackoverflow。浪費你的時間做有趣的事情。我問這個問題,因爲你可以在這裏看到:http://chalaki.com/two-ways-to-render-mvc3-partial-views-client-side-javascript-or-server-side-html-helper/713 /我們有其他方法可以做到這一點,我想知道什麼是更多的建議 – user1520494

+0

您使用Ajax的方式是向用戶顯示成功/錯誤的更好方法。主要原因是您不必重新加載整個視圖。你可以返回任何錯誤信息並繼續前進。 – IyaTaisho

回答

0

沒有什麼不對您的實現,它似乎是最好的方式給我,但另一種方法是,如果你願意,你可以使用ModelState.AddModelError(),但你的actionresult需要重新顯示視圖模型

所以,你會後接受模型

[HttpPost] 
public ActionResult ValidateHvm(ValidateModel model) 
{ 
    var result = HvmService.ValidateProject(model); 

    if(result == false){ //or whatever 

     ModelState.AddModelError("","Error"); 

    } 


     return View("MyView", model) 
} 
相關問題