我一直在尋找解決方案,但我嘗試過的每件事都沒有幫助,雖然看起來很簡單。我相信你們中的一些人會知道我該怎麼做。如何在用戶單擊後呈現局部視圖(使用剃鬚刀)?
我正在使用ASP.NET MVC4(剃鬚刀)。 我有一個側面菜單,我想要的是另一個局部視圖將呈現(取決於菜單項被點擊)。 我在我的頁面上應該包含這個局部視圖的div。命令:
@Html.Partial("_TitleDescription")
工作得很好,但它是靜態渲染局部視圖(編譯時間)。我希望它能夠在用戶點擊菜單中的每個按鈕時動態呈現它。
我想:
@Ajax.ActionLink("Location", "Location", "Product", new { id = @Model.ID }, new AjaxOptions() { UpdateTargetId = "result", InsertionMode = InsertionMode.Replace, HttpMethod = "GET"})
我想:
<script type="text/javascript">
function getView() {
$('#detailsDiv').load("@Url.Action("Location" , "Product")");
}
</script>
<a href='javascript:getView();'>Get Partial View</a>
<div id="detailsDiv"></div>
而且這樣的:
<div id="detailsDiv">
@{ Html.RenderPartial("_TitleDescription", null); }
</div>
但沒有爲我工作。
編輯:
我嘗試了兩個答案,但他們的作品不...所以這裏是我的控制器:
public ActionResult Location(int id = 0)
{
Product product = unitOfWork.ProductRepository.GetById(id);
return PartialView("Location.cshtml", product);
}
我把一個斷點,我打它的每時間,但仍沒有發生變化的觀點... :(
這就是我再次嘗試:
<div id="detailsDiv"></div>
<a href="#" onclick="loadLocation()">Location</a>
<script type="text/javascript">
function loadLocation() {
$.get('@Url.Action("Location","Product", new { id = 15 })',
function (data) {
$('#detailsDiv').load(data);
});
}
</script>
,我也試過這樣:
<div id="detailsDiv"></div>
@Html.ActionLink("Pages","Location","Product",new {id = 15},new {@class="menu"})
<script type="text/javascript">
$(function() {
$(".menu").click(function (e) {
e.preventDefault();
$("#detailsDiv").load($(this).attr("href"))
});
});
</script>
添加你的控制器代碼 –
看到我的答案在這裏http://stackoverflow.com/questions/19897157/create-a-popup-that-renders-a-partial-view/19909810#19909810 –
你可以檢查jQuery請求在瀏覽器的JavaScript控制檯中? – Marthijn