我有一个链接按钮列表(l1,l2,l3..etc)和一个固定的div区域。当我点击l1时,例如partialview1将在div中填充,当我点击l2时,例如partialview2将填充在同一个内div替换现有的partialview1.Each局部视图有不同的模型。 我的代码如下:SettingsMaster.cshtml
@{
ViewBag.Title = "ManageSettings";
Layout = "~/Views/Shared/_AdminLayout.cshtml";
}
@section JavaScript
{
<script type="text/javascript" src="@Url.Content("/Scripts/SettingsCustomScript.js")"></script>
}
<h2>ManageSettings</h2>
@Html.ActionLink("Area", null, null, null, new {@id="Area", @style = "text-transform:capitalize;" })
@Html.ActionLink("Subarea", null, null, null, new {@id="SubArea", @style = "text-transform:capitalize;" })
<div id="Datadisplay"></div>
Java脚本代码:自定义Javascript文件
/// <reference path="jquery-1.8.3.js" />
/// <reference path="jquery-1.5.1-vsdoc.js" />
$(document).ready(function () {
$("#Area").click(function () {
$("#Datadisplay").load('/Settings/GetArea', null, function (response, status, xhr) {
if (status == "error") {
alert("An error occured");
}
return false;
});
});
$("#Subarea").click(function () {
alert("hello");
}
);
控制器方法:
public class SettingsController : Controller { // // GET: /Settings/
[HttpGet]
public ActionResult ManageSettings()
{
return View();
}
[HttpGet]
public ActionResult GetArea()
{
return PartialView("GetArea");
}
}
但是在渲染时它正在调用ManageSettings(),这就是它没有显示的原因。 Plz帮我做什么
答案 0 :(得分:0)
我在堆栈溢出的另一篇文章中读到了这个,它对我有用
视图中的:
@model Tuple<IEnumerable<Model1name>,Model2name>
@foreach (var item in Model.Item1)
{
@item.Name
}
在控制器中:
var tuple = new Tuple<IEnumerable<Model1name>, Model2name>(context.Model1name.ToList(), new Model2name());
return View(tuple);
答案 1 :(得分:-1)
使用简单的jquery调用。
点击你的链接按钮,你就可以获得$ .Get(...)并渲染你的控制器返回的部分视图