我正在开发一个简单的MVC应用程序。
我有主视图,局部视图和控制器。
这是我的主要观点
@model partitalViewTest.Models.Qset
@{
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Question</title>
</head>
<body>
<div class="transbox" style="height:inherit;">
@Html.Partial("CheckAnswer",Model.partialModel)
</div>
</body>
</html>
这是我的部分视图:
@model IEnumerable<partitalViewTest.Models.Qset>
@{
Layout = null;
}
<h2> </h2>
@foreach (var item in Model)
{
@item.currpos;
}
@* <input type="button" title="Delete" value="@item.qstuinList[item.currpos].AnsC ;" onclick="changeBtn(this); location.href='@Url.Action("CheckAnswer", "RazerQuestion", new { id = 'A' }) '" />*@
<input id="Button1" type="button" value="button" onclick="location.href='@Url.Action("CheckAnswer", "RazerQuestion", new { id = 'A' }) '" />
这是我的控制者:
public ActionResult CheckAnswer()
{
// Some Code
return PartialView(qustinb.partialModel);
}
这工作正常,但我的问题是部分视图返回而不包装主视图。
请帮我解决这个问题。
答案 0 :(得分:1)
点击按钮即可:
location.href='@Url.Action("CheckAnswer", "RazerQuestion", new { id = 'A' }) '"
将浏览器导航到部分页面。
我怀疑你想要发生的事情是部分页面内容被替换为更新的内容,而无需刷新浏览器或导航。
你可以使用JQuery。
首先,给你一个id:
<div id="content" class="transbox" style="height:inherit;">
@Html.Partial("CheckAnswer",Model.partialModel)
</div>
其次,响应按钮单击(删除错误检查),执行与以下类似的操作:
function doWork(){
$.get('@Url.Action("CheckAnswer", "RazerQuestion", new { id = 'A' }'), function (data) {
$('#content').html(data);
});
}
最后,更改按钮以执行此操作:
<input id="Button1" type="button" value="button" onclick="doWork()" />
现在:
doWork()
功能,这将... CheckAnswer
操作,然后... <div />
内容替换为结果答案 1 :(得分:0)
该按钮仅加载部分视图。您可以使用Ajax.ActionLink来更新页面上的一些空div,部分视图为响应。 这是一个演示。
@Ajax.ActionLink("Link Text",
"CheckAnswer",
new { Id='A' },
new AjaxOptions
{
UpdateTargetId="emptyDiv",
InsertionMode = InsertionMode.Replace,
HttpMethod = "GET"
})