我想顯示一個主內的局部視圖(索引)查看:ASP.NET MVC局部視圖問題提交表單時
步驟:
- 用戶從指數選擇一個下拉項視圖。
- 這顯示具有搜索窗體的部分視圖。
- 用戶填寫搜索表單,然後單擊提交按鈕。
- 如果搜索表單有效,則會顯示一個新頁面(結果視圖)。
- 否則,搜索表單局部視圖應重新顯示裏面的主視圖
我在與4號問題,因爲當搜索表單提交,它只顯示
在部分查看錯誤一個新窗口。我想要顯示整個頁面:索引視圖+部分視圖帶錯誤。
對此提出建議?這是我有:
圖片
控制器
public class AppController : Controller
{
public ActionResult Index()
{
return View(new AppModel());
}
public ActionResult Form(string type)
{
if (type == "IOS")
return PartialView("_IOSApp", new AppModel());
else
return PartialView("_AndroidApp", new AppModel());
}
public ActionResult Search(AppModel appModel)
{
if (ModelState.IsValid)
{
return View("Result");
}
else // This is where I need help
{
if (appModel.Platform == "IOS")
return PartialView("_IOSApp", appModel);
else
return PartialView("_AndroidApp", appModel);
}
}
}
型號
public class AppModel
{
public string Platform { get; set; }
[Required]
public string IOSAppName { get; set; }
[Required]
public string AndroidAppName { get; set; }
public List<SelectListItem> Options { get; set; }
public AppModel()
{
Initialize();
}
public void Initialize()
{
Options = new List<SelectListItem>();
Options.Add(new SelectListItem { Text = "IOS", Value = "I" });
Options.Add(new SelectListItem { Text = "Android", Value = "A"});
}
}
Index.cshtml
@{ ViewBag.Title = "App Selection"; }
<h2>App Selection</h2>
@Html.Label("Select Type:")
@Html.DropDownListFor(x => x.Platform, Model.Options)
<div id="AppForm"></div> // This is where the Partial View goes
_IOSApp.cshtml
@using (Html.BeginForm("Search", "App"))
{
@Html.Label("App Name:")
@Html.TextBoxFor(x => x.IOSAppName)
<input id="btnIOS" type="submit" value="Search IOS App" />
}
AppSearch.js
$(document).ready(function() {
$("#Platform").change(function() {
value = $("#Platform :selected").text();
$.ajax({
url: "/App/Form",
data: { "type": value },
success: function (data) {
$("#AppForm").html(data);
}
})
});
});
爲什麼不使用@ Ajax.BeginForm(...) – chenZ
這就是我使用的是什麼 - 看我_IOSAPP.cshtml。當表單提交時,它會轉到搜索操作方法,如果模型無效,則只顯示部分視圖。我想要的是整個頁面(索引視圖+部分視圖有錯誤) –
我的意思是使用Ajax.BeginForm而不是Html.BeginForm,所以當提交時,轉到搜索操作,如果有效,返回一個局部視圖,搜索結果更新到頁面,如果無效,返回一個局部視圖,並將錯誤消息更新爲page.sumbit請求是一個ajax post請求 – chenZ