Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在MVC3中渲染局部视图_C#_Asp.net Mvc 3 - Fatal编程技术网

C# 如何在MVC3中渲染局部视图

C# 如何在MVC3中渲染局部视图,c#,asp.net-mvc-3,C#,Asp.net Mvc 3,我试图在应用程序中呈现局部视图,但无法显示该值。这就是我的观点 我的主索引视图 <div id="RPPricingNameModel"> @Html.Partial("RPPricingPlanNames") </div> <script type="text/javascript"> $("#RPPricingNameModel").load("/Home/GetPlanNameModel"); </script>

我试图在应用程序中呈现局部视图,但无法显示该值。这就是我的观点

我的主索引视图

 <div id="RPPricingNameModel">
     @Html.Partial("RPPricingPlanNames")
 </div>
<script type="text/javascript">
    $("#RPPricingNameModel").load("/Home/GetPlanNameModel");    
</script>
@model IndexVm

@*Whatever index code you have*@

@Html.Partial("PlanPartial", Model.PlanNameModel)
下面是模型的代码

public class RPPricingPlanNameModel
{
  public string Header { get; set; }
}
当我尝试用TD显示值时,它不会显示任何内容。
您能帮我解决这个问题吗?

看起来您缺少了在jquery选择器中查找的选择器

您需要添加:

<div id="RPPricingNameModel"></div>

祝你好运

您的@m.Header也应该是@Model.Header


最后,加载部分视图的javascript不应位于部分视图中,而应位于要将部分视图加载到的主视图中。

将索引替换为:

<div id="RPPricingNameModel"></div>

<script type="text/javascript">
  $(function(){$("#RPPricingNameModel").load("/Home/GetPlanNameModel");});
</script>
没有所需的模型

包装
$(“#RPPricingNameModel”).load(“/Home/getplannamodel”)在文档内部就绪,以便仅在加载完整的dom后执行

$(function(){

 $("#RPPricingNameModel").load("/Home/GetPlanNameModel");

});

如果您只想使用PartialView,而不是专门用jquery动态加载它们,请看一下我对这个问题的回答,它可能会解决您的问题:

您只需为索引创建一个ViewModel,其中包含局部视图所需的所有对象

控制器操作方法:

public ActionResult Index()
{
  PlanNameModel planNameModel = new PlanNameModel();
  planNameModel.Header = "Plans";
  ViewData.Model = new IndexVm{ PlanNameModel = planNameModel };
}
视图模型:

   public class IndexVm
   {
     public PlanNameModel PlanNameModel { get; set; }
   }
索引视图

 <div id="RPPricingNameModel">
     @Html.Partial("RPPricingPlanNames")
 </div>
<script type="text/javascript">
    $("#RPPricingNameModel").load("/Home/GetPlanNameModel");    
</script>
@model IndexVm

@*Whatever index code you have*@

@Html.Partial("PlanPartial", Model.PlanNameModel)
局部视图

@model PlanNameModel     
<table style= "vertical-align:top; left:0px; top:0px; position:absolute; border-width:1px; border-style:solid; border-color:Green;  width:130px; text-align:left;">    
    <tr>
        <td style=" font-size:15px; font-weight:bold; color:Black;">            
            @Model.Header
           <div>            
                  @Html.LabelFor(x => x.Header)               
           </div>   
        </td>
    </tr>
<table>
@model PlanNameModel

<div>@Model.Header</div>
@model PlanNameModel
@模型头

我尝试了这个。这对我不起作用。它显示的是值“Header”,而不是我分配给Model.Header的实际值“Plans”。我也尝试过了。将Javascript移动到main Index.cshtml,并将m.Header更改为@Model.Header。现在获取空引用execption。如果在GetPlanNameModel()中放置断点,会发生什么情况?它快到了吗?是的,它快到了。我可以看到我返回的模型不是空的。请更新您的问题以反映您最新的更改,也许我们能够发现问题,因为如果您进行了这些更改,您的模型不应为空。现在我得到的结果是“”,而不是任何值。我如何删除空引用错误。还有一个建议:用Get替换load基本上就是我要做的事情,将一些文本从数据库加载到我的页面中。我在我的页面上有不同的部分,我把它们分成了不同的部分视图。现在我想用数据库中的文本加载这些标签。我正试图用这种技术来实现这一点,但它似乎不起作用。还有其他想法吗?我的答案已经包括了,这似乎不是问题。不幸的是,这看起来很简单,但不知何故,我无法让这件事起作用(我有点困惑。你能解释一下吗?嘿,我从调试中发现了这么多。这可能会触发一些问题来解决这个问题。我在.load函数中添加了一个警报。它会呈现我的部分视图,此时模型为空。因此值将为null。然后警报告诉我它正在运行java脚本并获取值通过调用controller方法。但是之后它加载页面,而不是使用新的model.values再次呈现部分视图。你知道序列吗?如果我可以在controller方法之后呈现部分视图,那么它就可以工作了。有什么想法吗???@VivekPatel我在我的回答中添加了更多解释谢谢你的想法。我在你的p以前的帖子。