无主视图的模型无效返回局部视图

时间:2016-04-28 18:13:04

标签: asp.net-mvc

在我的EspaceClient / Compte.cshtml中,我会检索部分视图。 它可以工作但是当ModelState无效时,我只检索没有主视图的局部视图。

谢谢

function partialCoordonnees() {
        $.ajax({
        url: '/Utilisateurs/Edit/'+ @Model.Id,
        dataType: "html",
        success: function (data) {
         $('.fifth').html(data);
        }
        });
};

在我的UtilisateursController中

public ActionResult Edit(int? id)
{
     Utilisateur utilisateur = db.Utilisateurs.Find(id);
     return PartialView("_CoordonneesCompte", utilisateur);
}


public ActionResult Edit(Utilisateur utilisateur)
{
    if (ModelState.IsValid)
    {
        db.Entry(utilisateur).State = EntityState.Modified;
        db.SaveChanges();
        return RedirectToAction("Index", "EspaceClient", new { id=utilisateur.Id  });
    }
        return PartialView("_CoordonneesCompte", utilisateur);
}

1 个答案:

答案 0 :(得分:1)

不要使用 ModelState.IsValid

执行服务器端验证

使用不引人注目的jQuery库进行客户端验证

在cshtml中添加 jquery.unobtrusive-ajax.min.js jquery.validate.min.js

[实施例]

//this code goes in your partialview
$(function(){ 
  //allow the validation framework to re-prase the DOM
  jQuery.validator.unobtrusive.parse(); 

  //or to give the parser some context, supply it with a selector
  //jQuery validator will parse all child elements (deep) starting
  //from the selector element supplied
  jQuery.validator.unobtrusive.parse("#formId");
});


//then in your parent page handle the form submission
$(function(){
  $("#SubmitButton").click(function(){ 
    if (!$("#Form1").valid()){ 
      return false; 
    } 
  });
});

此示例采用Here

形式

希望它对你有所帮助......