Asp.net mvc ASP.net MVC和视图内部引导模式
关于这个问题,我已经有一段时间碰壁了。我不知道如何在不刷新主视图的情况下在模态中进行回发 我有一个视图具有以下引导模式Asp.net mvc ASP.net MVC和视图内部引导模式,asp.net-mvc,twitter-bootstrap,bootstrap-modal,Asp.net Mvc,Twitter Bootstrap,Bootstrap Modal,关于这个问题,我已经有一段时间碰壁了。我不知道如何在不刷新主视图的情况下在模态中进行回发 我有一个视图具有以下引导模式 <div class="modal fade" id="modal" tabindex="-1" role="dialog" aria-labelledby="modal" aria- hidden="true"> <div class="modal-dialog"> <div class="modal-content">
<div class="modal fade" id="modal" tabindex="-1" role="dialog" aria-labelledby="modal" aria- hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title" id="myModalLabel"></h4>
</div>
<div class="modal-body">
@Html.Partial("~/Views/Kontakt/BasicCreate.cshtml", new IDE3_CRM.ViewModels.BasicKontaktViewModel())
</div>
</div>
</div>
每当我在modal中单击submit时,整个视图都会被提交,我想完成的是只提交BasicCreate。作为参考,BasicCreate控制器激发ok,并创建新的Kontakt
编辑
我一直在尝试各种各样的方法,我能够定位问题,但没有找到问题的原因。似乎BasicCreate控制器会进行回发,无论我将哪种类型设置为返回对象,无论它是void、ActionResult、空视图。。。它总是回发和重定向到
/Kontakt/BasicCreate
您可以使用如下AJAX调用:
$('form').submit(function () { // you can use any selector that match your form
$.ajax({
url: this.action,
type: this.method,
data: $(this).serialize()
}).done(function(data){
// Do something when server returns success!
});
return false; // prevent the form submission
});
然后,您可能需要添加验证或检查服务器结果这可能就是解决方案,但是,模式内的视图具有主视图的表单值,即
相同。只需将控制器和操作参数添加到@Html.BeginForm()中即可
在BasicCreate
视图中调用。我调用了,得到的只是/Kontakt/BasicCreate的空白视图谢谢。当你说“我得到的只是/Kontakt/BasicCreate的一个空白视图”时,你提交的时候会发生吗?让我们来看看。
[HttpPost]
[ValidateAntiForgeryToken]
public void BasicCreate([Bind(Include = "idKontakt,idOvlasti,idFirma,Username,Password,Ime,Prezime,Funkcija,Tel1,Mob1,Fax,Email1,Adresa1,Grad,Drzava,PostanskiBroj,Biljeske,Aktivan")] BasicKontaktViewModel kontakt, int? idCompany)
{
if (ModelState.IsValid)
{
Kontakt _kontakt = new Kontakt();
_kontakt.Adresa1 = kontakt.Adresa1;
_kontakt.Aktivan = true;
_kontakt.Biljeske = kontakt.Biljeske;
_kontakt.Drzava = "Hrvatska";
_kontakt.Email1 = kontakt.Email1;
_kontakt.Funkcija = kontakt.Funkcija;
_kontakt.Grad = kontakt.Grad;
_kontakt.idFirma = kontakt.idFirma;
_kontakt.idOvlasti = 4;
_kontakt.Ime = kontakt.Ime;
_kontakt.Mob1 = kontakt.Mob1;
_kontakt.Password = kontakt.Password;
_kontakt.Prezime = kontakt.Prezime;
_kontakt.Tel1 = kontakt.Tel1;
_kontakt.Username = kontakt.Username;
db.Kontakt.Add(_kontakt);
db.SaveChanges();
}
}
$('form').submit(function () { // you can use any selector that match your form
$.ajax({
url: this.action,
type: this.method,
data: $(this).serialize()
}).done(function(data){
// Do something when server returns success!
});
return false; // prevent the form submission
});