【发布时间】:2014-05-16 17:45:42
【问题描述】:
我有一个问题,点击时应该只刷新页面的一部分(部分视图),只用“选择”打开新页面(这是应该在索引页面内显示的部分)。我正在尝试使用本教程 http://csharp-video-tutorials.blogspot.sk/2013/09/part-92-ajax-with-aspnet-mvc.html 执行此操作,但我不知道出了什么问题 - 我在这个论坛上也没有找到任何相关信息。
共享 _Layout 中的资源:
@Scripts.Render("~/bundles/jquery")
内部地图/索引:
@Ajax.ActionLink("All", "GetTracks",
new AjaxOptions
{
HttpMethod = "GET", // HttpMethod to use, GET or POST
UpdateTargetId = "mytestdiv", // ID of the HTML element to update
InsertionMode = InsertionMode.Replace // Replace the existing contents
})
<div id="mytestdiv">
</div>
地图控制器(我知道仅使用 Viewbag 是不好的解决方案 - 它只是暂时的):
public PartialViewResult GetTracks()
{
List<int> trackIDs = new List<int>();
var queryTrack = from dTrack in db.track
where dTrack.device_id == 1
select dTrack.id;
foreach (int trackId in queryTrack)
{
trackIDs.Add(trackId);
}
ViewBag.trackIDs = trackIDs;
return PartialView("SelectTrackView");
}
以及我想用 Ajax 重新加载的内容,位于 ~/Views/Map/SelectTrackView.cshtml:
<select id="SelectTrack" name="idTrack" class="form-control" style="margin:20px" onchange="selectTrack()">
@foreach (int number in ViewBag.trackIDs)
{
if (ViewBag.selectedidTrack == @number)
{
<option value="@number" selected="selected">@number</option>
}
else
{
<option value="@number">@number</option>
}
}
</select>
感谢您的帮助。
【问题讨论】:
-
您的浏览器javascript控制台有错误吗?
-
这也是最终源代码的样子:全部
标签: jquery ajax asp.net-mvc asp.net-mvc-5