使部分视图可重用
问题描述:
假设我有一个局部视图,呈现应用程序的下拉列表。在下拉菜单中选择一个项目时,它会呈现另一个局部视图。使部分视图可重用
该下拉列表存在于应用程序的一些地方,但在每个页面上,选择应用程序时需要呈现不同的局部视图。有没有简单的方法来使下拉可重复使用?即我需要设置一个不同的data_url取决于部分视图呈现的页面。
管窥:
<script type="text/javascript">
$(function() {
$('#ApplicationsDropdownList').change(function() {
var url = $(this).data('url');
var applicationId = $(this).val();
$('#RolesForApplication').load(url, { applicationId: applicationId})
});
});
</script>
<div>
<label for='ApplicationsDropdownList'>Application:</label>
@Html.DropDownListFor(
x => x.SelectedApplicationId,
new SelectList(Model.Applications, "Value", "Text"),
"-- Select Application --",
new
{
id = "ApplicationsDropdownList",
data_url = Url.Action("ViewRolesTableForApplication", "Index")
}
)
</div>
控制器:
public ActionResult ViewRolesTableForApplication(string applicationId)
{
...
return View("_RolesTableForApplicationPartial");
}
答
您可以添加含有data_url到您用于局部视图模型中的字符串属性。
所以除了包含Applications
的型号外,它也会有public string DataUrl { get; set; }
。
也许我误解了一些东西,但为什么你不能只是让一个包含你的data_url的字符串作为你的部分视图模型的另一部分? – DMulligan 2012-04-12 18:34:13
@AFinkelstein我不认为你是误解......我认为这可能是我寻找的简单和非常明显的答案 – woggles 2012-04-12 21:33:57
哈哈,很高兴我能帮上忙。我会做出答案。 – DMulligan 2012-04-12 21:54:33