我正在使用Ajax表单回发我的表单以在MVC中呈现部分视图。以下是供您参考的代码:
用于引发dorpdown事件的Java脚本:
jQuery(document).ready(function () {
$("#ReviewPeriodID").change(function () {
var f = $("#Form1");
var action = f.attr("action");
var serializedForm = f.serialize();
$.post(action, serializedForm,
function ()
{
alert("Finished! Can do something here!")
});
});
});
上述代码执行完美,并在回发时调用特定操作。
控制器操作(回发):
[HttpPost]
public ActionResult Welcome(HomeViewModel model)
{
String userName = this.GetUserName();
HomeViewModel homeViewModel = GetHomeViewModel(userName, null);
Review review = this.OPService
.GetReviewDetails(model.ID, model.Employee.ID);
homeViewModel.Review = review;
return View(homeViewModel);
}
以下是视图:
查看代码(一切都在Ajax表单下):
@using (Ajax.BeginForm("Welcome", "Home", new AjaxOptions
{ InsertionMode = InsertionMode.Replace, UpdateTargetId = "evaDetails" },
new { id = "Form1" }))
{
@Html.HiddenFor(m => m.Employee.ID);
@Html.HiddenFor(m => m.Employee.FirstName);
@Html.HiddenFor(m => m.Employee.LastName);
@Html.HiddenFor(m => m.MinimumManagerCount);
<table class="tablestyle">
<tr>
<td class="highlightTD" colspan="2">
Step 1. Please select a review period</td>
</tr>
<tr>
<td class="firstColumnTD" style="width:30%;" >Review Period</td>
<td>@Html.DropDownListFor(m => m.ReviewPeriodID, Model.ReviewPeriods,
"-- Select Review Period --")</td>
</tr>
</table>
<div id="evaDetails">
@{
if (Model.Review != null)
{
<table class="tablestyle">
<tr>
<td class="highlightTD">Reviews</td>
</tr>
<tr>
<td>
@Html.Partial("_Evaluations", Model.Review)
</td>
</tr>
</table>
}
}
</div>
}
一切都完美执行,但不会在浏览器上显示内容。任何人都可以帮助我找出我在这里做的错误吗?
答案 0 :(得分:1)
我可以看到两个问题: