leila.net
سه شنبه 20 اسفند 1392, 21:03 عصر
با سلام
دوستان من تو یه view دارم که داخلش سه تا فرم با input type=submit مجزا دارم و البته یه action که بسته به button که کلیک میشه کدهای مربوط به هر فرم رو اجرا می کنه . خب تا اینجا همه چیز وقتی با فرم ها کار می کنم درست کار میکنه . مشکل وقتی پیش میاد که می خوام یکی از این ایونت ها ( submit ) ها یه ajax call انجام بدن .
[HttpPost]
public ActionResult EditProfile(Models.Profile model, string submitButton)
{
///------------------- my code here
}
و این هم تعریف فرمم :
@model MVCallinone.Models.Profile
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
///------------------- html tag here
}
برا اینکار از کدهای زیر استفاده می کنم :
<script type="text/javascript">
$(function () {
$("#btnuser").on("click", function (event) {
event.preventDefault();
var form = $(this).parent("form");
$.ajax({
type: "POST",
url: form.attr('action'),
data:form.serialize()
}).success(function () { })
.error(function () { });
return false;
});
});
</script>
Action من اجرا میشه ولی متاسفانه model ی که در فرم استفاده شده مقادیری که به action ارسال میکنه تو این روش null هستش .
البته باید بگم من تازه mvc رو شروع کردم و شاید روشی که استفاده می کنم درست نباشه . به هر حال ممنون میشم راهنمایی کنین .
دوستان من تو یه view دارم که داخلش سه تا فرم با input type=submit مجزا دارم و البته یه action که بسته به button که کلیک میشه کدهای مربوط به هر فرم رو اجرا می کنه . خب تا اینجا همه چیز وقتی با فرم ها کار می کنم درست کار میکنه . مشکل وقتی پیش میاد که می خوام یکی از این ایونت ها ( submit ) ها یه ajax call انجام بدن .
[HttpPost]
public ActionResult EditProfile(Models.Profile model, string submitButton)
{
///------------------- my code here
}
و این هم تعریف فرمم :
@model MVCallinone.Models.Profile
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
///------------------- html tag here
}
برا اینکار از کدهای زیر استفاده می کنم :
<script type="text/javascript">
$(function () {
$("#btnuser").on("click", function (event) {
event.preventDefault();
var form = $(this).parent("form");
$.ajax({
type: "POST",
url: form.attr('action'),
data:form.serialize()
}).success(function () { })
.error(function () { });
return false;
});
});
</script>
Action من اجرا میشه ولی متاسفانه model ی که در فرم استفاده شده مقادیری که به action ارسال میکنه تو این روش null هستش .
البته باید بگم من تازه mvc رو شروع کردم و شاید روشی که استفاده می کنم درست نباشه . به هر حال ممنون میشم راهنمایی کنین .