@Html.ActionLink("pSearch", "Results", null, new {target="_blank"})
不起作用,因爲它不會將表單數據發佈到「結果」控制器操作,並且返回的所有內容都是404錯誤。在MVC中發佈表單時,如何讓控制器打開一個包含結果的新窗口?
@Html.ActionLink("pSearch", "Results", null, new {target="_blank"})
不起作用,因爲它不會將表單數據發佈到「結果」控制器操作,並且返回的所有內容都是404錯誤。在MVC中發佈表單時,如何讓控制器打開一個包含結果的新窗口?
假設你正在使用的默認路由:
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
則:
@Html.ActionLink("pSearch", "Results", null, new { target="_blank" })
將產生:
<a href="/Home/Results" target="_blank">pSearch</a>
所以,如果你希望得到任何東西比404希望你已在HomeController
內定義了Results
動作,對嗎?
像這樣:
public class HomeController : Controller
{
public ActionResult Results()
{
return View();
}
}
否則,你真的不能指望超過404錯誤得多了,可以嗎?
很明顯,但可能值得一提的是,此操作預計會定義~/Views/Home/Results.cshtml
或~/Views/Home/Results.aspx
視圖。你已經在這個位置定義了它,不是嗎?
我加了onclick =「this.form.target ='_blank'; return真正;」到提交按鈕,一切都很好。我讓它變得複雜得多,然後我真的需要這樣做。 (忘了我的基本HTML) –
是的,不要忘記基本的HTML。請記住,ASP.NET MVC所做的一切都是在一天結束時吐出一些客戶端瀏覽器使用的HTML字節。所以不要用ASP.NET MVC來思考。根據瀏覽器在一天結束時看到的內容來思考。 –
感謝您的幫助 –
actionLink將生成一個不會發布表單的標記。 –
你想做什麼?您正在使用的操作鏈接會啓動get方法。如果你正在嘗試做一個表單發佈,你應該擴展你的例子來顯示錶單和輸入ie。 @using(Html.BeginForm())and –