Jquery 局部视图使用的模型与包含它的页面不同?
我的主页中有一个局部视图,它使用了与主页不同的模型 简而言之,我的主页上有一个下拉控件,它使用一个模型填充其选项。当选择一个选项时,我有一个脚本,它会将所选选项发布到主控制器中的另一个操作方法。该方法接受该值,并根据该值运行db查询。然后我将这些结果放入一个模型,并将该模型传递给我的局部视图。部分视图被呈现,然后转换为HTML标记,并在JSON对象中传递回脚本。然后,脚本将生成的视图标记写入主页中的div 我的问题是,我得到一个错误,说部分视图正在寻找一个模型,而它得到的模型是主页的模型,而不是它自己的模型。有什么简单的方法可以补救吗?我无法将这两个模型包装到另一个模型视图模型中,因为这两个模型通过不同的操作方法传递 以下是相关代码,希望能有所帮助: 控制器 主视图 局部视图 你试过Jquery 局部视图使用的模型与包含它的页面不同?,jquery,asp.net-mvc,model,viewmodel,partial-views,Jquery,Asp.net Mvc,Model,Viewmodel,Partial Views,我的主页中有一个局部视图,它使用了与主页不同的模型 简而言之,我的主页上有一个下拉控件,它使用一个模型填充其选项。当选择一个选项时,我有一个脚本,它会将所选选项发布到主控制器中的另一个操作方法。该方法接受该值,并根据该值运行db查询。然后我将这些结果放入一个模型,并将该模型传递给我的局部视图。部分视图被呈现,然后转换为HTML标记,并在JSON对象中传递回脚本。然后,脚本将生成的视图标记写入主页中的div 我的问题是,我得到一个错误,说部分视图正在寻找一个模型,而它得到的模型是主页的模型,而不是
Html.Partial("~/Views/Home/RetrieveSamples.cshtml",new SomeModel())
所以我想我解决了这个问题——事实证明我真的不需要Html.Partial,因为我的脚本以Html的形式获取渲染视图。helper方法是不必要的。我没有,但我会尝试一下。事实上,现在我想起来了,我不认为这能解决我的问题。这条线仍然在主视图中,所以我必须以某种方式将模型放到那里,这是我的问题。
<!DOCTYPE html>
<html>
@using SampleTracking.Models.ViewModels;
@model SamplingEventsVM
<head>
<title>@ViewBag.Title</title>
<script src="~/Scripts/jquery-2.1.1.js"></script>
<script type="text/javascript" src="~/Scripts/CustomScripts.js"></script>
</head>
<body>
<span id="SamplingEventDiv">
@Html.DropDownListFor(model => model.SelectedSamplingEvent, Model.SamplingEvents, new { @id = "SamplingEventSelection" })
</span>
<div id="SamplingEventDetails">
@Html.Partial("~/Views/Home/RetrieveSamples.cshtml")
</div>
</body>
</html>
@using System.Collections.ObjectModel;
@using SampleTracking.Models.ViewModels;
@model ObservableCollection<Sample>
<div id="SamplingEventDetails">
@foreach (var sample in Model)
{
<div>sample.SampleID</div>
}
</div>
Html.Partial("~/Views/Home/RetrieveSamples.cshtml",new SomeModel())