這是我的控制器動作看起來像更新的WebGrid在下拉列表回傳asp.net的MVC
[HttpPost]
[OutputCache(Location = OutputCacheLocation.None)]
public ActionResult GetData(string Key, string Physician)
{
string physicianCode = Physician.Split(' ').ElementAt(0).Trim();
CaseProfile caseProfile = HttpContext.Cache.Get(Key) as CaseProfile;
return PartialView("_CaseProfile", caseProfile);
}
這是我在這裏面jQuery的對話框中顯示我的部分觀點_CaseProfile
<div id="paged-case-profile-div">
@using (Ajax.BeginForm("GetData", "Group",
new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "paged-case-profile-div"
, OnSuccess="OnSuccess", OnComplete="OnComplete", InsertionMode=InsertionMode.Replace }))
{
@Html.HiddenFor(m => m.Key)
@Html.DropDownList("Physician", Model.PhysicianSelectList,
new { style = "font-size: 11px;", onchange = "this.form.submit();" })
<div>
@{
var grid = new WebGrid(source: Model.Items.AsEnumerable(),
canPage: true, canSort: false, rowsPerPage: 10);
}
@grid.GetHtml(
htmlAttributes: new { align = "center" },
tableStyle: "table",
headerStyle: "header-row",
alternatingRowStyle: "alternate-row",
columns:
physicianGrid.Columns(
physicianGrid.Column("PatientId", "Patient Id"),
physicianGrid.Column("MedRecNum", "Med Rec Num"),
physicianGrid.Column("AdmissionDate", "Admission Date")))
</div>
}
</div>
我所有的js文件都添加到_Layout.cshtml文件中。 我想要做回ajax回落在下拉列表中,並用控制器操作返回的最新內容更新paged-case-profile-div。 問題是,從服務器返回的新內容被渲染到不是我想要的新頁面。我只想讓我的div在ajax表單之外更新爲新內容。 請注意,我只是在OnSuccess和OnComplete javascript方法上顯示警告框。 您能否讓我知道我的代碼中有什麼問題?
另外 - 請注意,我已經檢查了幾乎所有關於此stackoverflow的相關問題,但他們都沒有幫助我。如果有人能指出我代碼中的錯誤,並給我建議改正它而不是指向其他問題/發佈,我將不勝感激。
它已經在我的_Layout.cshtml頁面。而我的所有其他對話框有一個Ajax形式工作正常,問題只是這部分。 – user979189 2012-03-28 16:01:27
@ user979189,好的,我已經用另一個建議更新了我的答案。 – 2012-03-28 16:13:43
太棒了!它像一個魅力。 – user979189 2012-03-28 16:19:29