我在主视图中有一个选择框。该视图具有局部视图。 当该选择框上的值更改时,我想重新加载局部视图(使用模型中的一些新数据)并使用该新数据更新模式内容。。
我可以成功重新加载部分视图,我的问题是模态更新的最佳方法是什么?
我看到的选项:
答案 0 :(得分:0)
我从您的问题中了解到的是,您有一个主视图,该主视图具有一个SelectList控件,可用于选择更改,该SelectList您要更新部分视图(部分视图)的SelectList,对于您正在使用的那部分部分视图。如果是这种情况,请执行以下步骤,希望这将有助于您完成任务:
步骤:1: 可以说这是您的主要观点 [MainView.cshtml]
@model yourProjectNameSpace.SomeModel
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>@ViewBag.Title</h2>
<select id='yourSelectList'>
<option value="1">Option One</option>
<option value="2">Option two</option>
</select>
<div id="PartialAreaToUpdate">
@Html.Partial("_YourPartialView", Model)
</div>
@section scripts
{
<script>
$('#yourSelectList').change(function () {
var selectedvalue = $(this).val();
if (!selectedvalue ) {
return;
}
$.ajax({
type: 'POST',
url: '@Url.Action("GetYourUpdatedPartial", "YourControllerName")',
data: { selectedvalue: selectedvalue},
success: function (response) {
$('#PartialAreaToUpdate').html('');
$('#PartialAreaToUpdate').html(response);
}
});
});
</script>
}
step.2:您的控制器代码如下
public class YourControllerNameController : Controller
{
public ActionResult GetYourUpdatedPartial(string selectedvalue)
{
var model = getUpdtedDataFromYOurStor(selectedValue);
return View("_YourPartialView", model);
}
}
步骤。 3:最后 您的局部视图[_YourPartialView.cshtml]
@model yourModel
your logic of rendering data will go here