我試圖做一個應用程序請求控制器上的操作並收到更新後的信息模型。步驟很簡單,部分視圖不渲染模型更新ajax後調用
- 填寫窗體上的一些信息。
- 點擊某個按鈕,在控制器上調用一個動作。
- 該操作更新接收到的模型並使用PartialView方法將其發回。
但是,模型不更新!
代碼:
<div id="div-dialog"> // THIS IS A DIALOG JQUERYUI
<div id="div_toolbar" class="ui-widget-header ui-corner-all"> //THIS IS A TOOLBAR JQUERYUI
<div style="margin-right: auto; margin-left: auto; width: 420px">
<button id="btn_novo">Novo</button>
<button id="btn_gravar">Gravar</button>
<button id="btn_limpar">Limpar</button>
<button id="btn_excluir">Excluir</button>
</div>
</div>
</div>
<div id="partial-render"> //HERE GOES THE PARTIAL VIEW
@Html.Partial("AvaliationPeriodPartial")
</div>
<script type="text/javascript">
$(function() {
$('#div-dialog').dialog({
height: 'auto',
width: 600
});
$('#btn_novo').button({ icons: { primary: "ui-icon-document"} }).button('enable').click(function() {
/* ON THIS FUNCTION I SERIALIZE THE INPUTS TO SEND IT TO THE ACTION ON CONTROLLER
TO UPDATE THE INFORMATION */
var formData = $('input').serialize();
$('input[disabled]').each(function() {
formData = formData + '&' + $(this).attr('name') + '=' + $(this).val();
});
//HERE THE AJAX CALL
$.post('@Url.Action("teste", "Import")', formData, function (html) {
$('#partial-render').html(html);
}, 'html');
});
</script>
這裏是_layout頁面代碼:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Bem-vindo | @ViewBag.Title</title>
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
<link href="@Url.Content("~/Content/themes/redmond/jquery-ui-1.9.1.custom.min.css")" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery-1.8.3.min.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery-ui-1.9.2.custom.min.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/MicrosoftAjax.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/MicrosoftMvcAjax.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")"></script>
</head>
<body>
@RenderBody()
</body>
</html>
這裏是PartialView代碼:
@model GdaeMVC4.Models.ScreenModels.AvaliationPeriod
@Html.LabelFor(m => m.IdAvaliation)
@Html.TextBoxFor(m => m.IdAvaliation)
@Html.TextBoxFor(m => m.Description)
您還需要發佈控制器操作。 – Heather
你有沒有檢查過你的ajax調用返回200(ok)狀態代碼或其他類似於500或404的東西。你可以用螢火蟲或小提琴 –
返回狀態200 ... –