2012-12-05 45 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) 
} 
相关问题