![](/img/trans.png)
[英]Why doesn't my view load the jquery code from _Layout.cshtml but does when I add it lcoally to the view?
[英]Open MVC View from _Layout.cshtml when Menu is clicked using jQuery
我是MVC的新手,正在嘗試構建場景。
_Layout.cshtml中沒有幾個菜單項。 當我單擊菜單項時,它應調用ABCController的Index方法,並且應為ABC \\ Index.html。 我正在嘗試使用jQuery Ajax的get / post方法來實現這一點。 控制器的方法被調用,但視圖未打開。 我不確定為什么沒有打開它。 但是,當我在菜單項中直接輸入@ Html.ActionLink時,將打開視圖。 我的要求是,我應該能夠編寫javascript以從_Layout.cshtml打開視圖。 我也嘗試了$ .get,它不起作用。 有人可以幫幫我嗎。
我的代碼:
Javascript:
$("body").on("click", "#aMyLink", function () {
var navURL;
navURL = "/ABC/Index";
$.ajax({
url: navURL,
data: {},
type: 'POST',
error: function (jqXHR) {
alert('error occurred - ' + jqXHR.status);
},
success: function (data) {
}
})
});
我認為這違反了ajax的目的,因為ajax請求的目的是避免執行整個頁面周期。 但是,可以通過在成功調用后重定向到頁面來完成。
$("body").on("click", "#aMyLink", function () {
var navURL;
navURL = "/ABC/Index";
$.ajax({
url: navURL,
data: {},
type: 'POST',
error: function (jqXHR) {
alert('error occurred - ' + jqXHR.status);
},
success: function (data) {
window.location = navURL;
}
});
});
$("body").on("click", "#aMyLink", function () {
var navURL;
navURL = "/ABC/Index";
window.location=navURL;
});
注意我可能不會對此URL進行硬編碼,並將其作為數據元素放入標記中,然后使用它。
<div id="links">
<ul>
<li><a class="mylink" data-url='@Url.Action("someaction", "somecontroller", new { id = "123" })'>My Link</a>
</li>
<li><a class="mylink" data-url='@Url.Action("someotheraction", "somecontroller", new { id = "123" })'>My Link</a>
</li>
</ul>
</div>
然后將代碼更改為:
$("#links").on("click", ".mylink", function () {
window.location=$(this).data("url");;
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.