在下拉列表中的 select 项之后使用 ajax 呈现 PartialView
Render PartialView using ajax after select item from dropdownlist
我有以下 ViewModel
public class ReservationDetails
{
public ReservationDetails()
{
}
public Reservation Reservation { get; set; }
public List<ReservationHouseDetails> ReservationHouseDetails { get; set; }
public Dictionary<string,ReservationHouseDetails> MyProperty { get; set; }
public List<ReservationAttractionDetails> ReservationAttractionDetails { get; set; }
public IEnumerable<SelectListItem> Houses { get; set; }
public int SelectedHouseDetailsId { get; set; }
public string SelectedHouseDetailsText { get; set; }
}
当我打开视图 Details.cshtml 时,它会显示带有房屋名称的下拉列表。我想 select 其中之一,然后在 selected House 的某些 div 中的部分视图内容中单击按钮显示。
我应该如何更正以下脚本以使用 ajax
呈现局部视图
<script type="text/javascript">
$('.SelectHouse').click(function() {
$('.divForSelectHouse').Load('@Html.Partial("~/Views/ClientReservations/ReservationHouseDetails.cshtml",Model.MyProperty[Model.SelectedHouseDetailsText])')
});
</script>
我觉得应该是controller中的附加方法,负责显示这样的partial view
public PartialViewResult DetailsHouse(ReservationHouseDetails houseDetails)
{
return PartialView("ReservationHouseDetails", houseDetails);
}
在这种情况下,我如何将对象作为参数传递给此方法,如果它必须序列化,它应该是什么样子?
@Html.Partial()
是服务端方法,渲染前会调用HTML。在您的情况下,您需要根据下拉列表的选择绑定一些局部视图。所以你需要做的是,你需要通过 ajax.
调用局部视图的控制器方法
$('.SelectHouse').click(function() {
$.ajax({ url: @Uri.Action("ActionName","ControllerNmae"),
type: "post",
dataType:"html",
data: "<your data as serialized json>",
success: function(result) {
$('.divForSelectHouse').html(result);
}
});
});
我有以下 ViewModel
public class ReservationDetails
{
public ReservationDetails()
{
}
public Reservation Reservation { get; set; }
public List<ReservationHouseDetails> ReservationHouseDetails { get; set; }
public Dictionary<string,ReservationHouseDetails> MyProperty { get; set; }
public List<ReservationAttractionDetails> ReservationAttractionDetails { get; set; }
public IEnumerable<SelectListItem> Houses { get; set; }
public int SelectedHouseDetailsId { get; set; }
public string SelectedHouseDetailsText { get; set; }
}
当我打开视图 Details.cshtml 时,它会显示带有房屋名称的下拉列表。我想 select 其中之一,然后在 selected House 的某些 div 中的部分视图内容中单击按钮显示。 我应该如何更正以下脚本以使用 ajax
呈现局部视图 <script type="text/javascript">
$('.SelectHouse').click(function() {
$('.divForSelectHouse').Load('@Html.Partial("~/Views/ClientReservations/ReservationHouseDetails.cshtml",Model.MyProperty[Model.SelectedHouseDetailsText])')
});
</script>
我觉得应该是controller中的附加方法,负责显示这样的partial view
public PartialViewResult DetailsHouse(ReservationHouseDetails houseDetails)
{
return PartialView("ReservationHouseDetails", houseDetails);
}
在这种情况下,我如何将对象作为参数传递给此方法,如果它必须序列化,它应该是什么样子?
@Html.Partial()
是服务端方法,渲染前会调用HTML。在您的情况下,您需要根据下拉列表的选择绑定一些局部视图。所以你需要做的是,你需要通过 ajax.
$('.SelectHouse').click(function() {
$.ajax({ url: @Uri.Action("ActionName","ControllerNmae"),
type: "post",
dataType:"html",
data: "<your data as serialized json>",
success: function(result) {
$('.divForSelectHouse').html(result);
}
});
});