.net MVC4更新局部视图

.net MVC4更新局部视图,.net,asp.net-mvc,asp.net-mvc-4,web,partial,.net,Asp.net Mvc,Asp.net Mvc 4,Web,Partial,我正在开发一个简单的MVC应用程序 我有主视图、局部视图和控制器 这是我的主要观点 @model partitalViewTest.Models.Qset @{ } <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>Question</title>

我正在开发一个简单的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>
这很好,但我的问题是部分视图返回时没有包装主视图


请帮我解决这个问题

您的按钮单击正在执行以下操作:

location.href='@Url.Action("CheckAnswer", "RazerQuestion", new { id = 'A' })    '"
它将浏览器导航到部分页面

我怀疑您希望发生的是用更新的内容替换部分页面内容,而无需刷新浏览器或导航离开

您可以使用JQuery

首先,给你的身份证:

<div id="content" class="transbox" style="height:inherit;"> 
   @Html.Partial("CheckAnswer",Model.partialModel)
</div> 
最后,更改按钮以执行此操作:

<input id="Button1" type="button" value="button" onclick="doWork()" />

现在将:

  • 点击按钮
  • 启动
    doWork()
    函数,该函数将
  • CheckAnswer
    操作发出请求,然后
  • 获取请求的内容,并用结果替换
    内容

该按钮将仅加载部分视图。您可以使用Ajax.ActionLink来更新页面上的一些空div,并将部分视图作为响应,而不是按钮。
这是一个演示

@Ajax.ActionLink("Link Text", 

                 "CheckAnswer",

                 new { Id='A' },

                 new AjaxOptions
                     {    
                     UpdateTargetId="emptyDiv", 
                     InsertionMode = InsertionMode.Replace,
                     HttpMethod = "GET"

                 })

唯一的变化是在你能显示用来调用动作方法的url(路径)吗?看起来你在“div class=transbox”中保留了分号…看看吧…Akhlesh:它的RazerQuestion/CheckAnswerMukus和X-Developer我已经删除了所有的div标签,但问题仍然是sameThank,非常感谢你
function doWork(){
    $.get('@Url.Action("CheckAnswer", "RazerQuestion", new { id = 'A' }'), function (data) {
        $('#content').html(data);
    });
}
<input id="Button1" type="button" value="button" onclick="doWork()" />
@Ajax.ActionLink("Link Text", 

                 "CheckAnswer",

                 new { Id='A' },

                 new AjaxOptions
                     {    
                     UpdateTargetId="emptyDiv", 
                     InsertionMode = InsertionMode.Replace,
                     HttpMethod = "GET"

                 })