我有我的母版的搜索按鈕下面的代碼:MVC。不能看景後HttpPost
<form id="form1" runat="server">
<input type="text" value="Поиск" size="25" class="search-form" id="txt_search" name="txt_search" />
<button type="submit" name="b_search" id="b_search" value="1" class="but-search" onclick="javascript:MySaveFunc(txt_search); "> </button>
<script type="text/javascript">
function MySaveFunc(rec) {
var new_name = rec.value;
$.ajax({
url: '/Home/SearchPost',
type: "POST",
cache: false,
data: {
txt_name: rec.value
},
success: function (data) {
},
error: function (data) {
}
});
return false;
}
</script>
</form>
我也有我的控制器下面的代碼:
[HttpPost]
public ActionResult SearchPost(string txt_name)
{
return RedirectToAction("Search", new { txt_name =txt_name });
}
public ActionResult Search(string txt_name)
{
......
return View("Search");
}
而且在global.asa中
routes.MapRoute("Search", "Home/Search/{txt_name}", new { controller = "Home", action = "Search", txt_name = UrlParameter.Optional });
routes.MapRoute("SearchPost", "Home/SearchPost/{txt_name}", new { controller = "Home", action = "SearchPost", txt_name = UrlParameter.Optional });
如果我這樣打電話 - http://localhost:55419/Home/search/126 - 它工作正常。 但是,如果我點擊「搜索」按鈕,應用程序不會顯示「搜索」頁面!
首先進入「SearchPost」動作,然後「搜索」。沒有錯誤。但最後一行不起作用:
return View("Search");
該應用程序不顯示視圖「搜索」,只有上一頁。 怎麼了?
您有JavaScript函數'MySaveFunc',它可以通過AJAX停止表單的自然提交過程併發布帖子。如果您在成功回調中查看'data'的內容,則呈現視圖的HTML將位於此處。 – scgough
Ajax調用在同一頁上說,他們不重定向 –
'runat =「server」'是Web窗體,而不是MVC(刪除它)。 ''onclick =「javascript:MySaveFunc(txt_search);''會傳遞未定義給你的函數,因爲沒有定義'txt_search'。'return RedirectToAction(」Search「,new {txt_name = txt_name});'不工作,因爲你正在一個ajax調用你究竟想要做什麼? –