微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

asp.net-mvc – 使用jquery Ajax加载PartialView?

PartialView
@model OsosYeni23072012.Models.TblMeters
<h3>
    Model.customer_name
</h3>
<h3>
    Model.meter_name
</h3>

调节器

[HttpGet]
public ActionResult MeterInfoPartial(string meter_id)
{
    int _meter_id = Int32.Parse(meter_id);
    var _meter = entity.TblMeters.Where(x => x.sno == _meter_id).FirstOrDefault();

    return PartialView("MeterInfoPartial",_meter);
}

剃刀

@Html.DropDownList("sno",new SelectList(Model,"sno","meter_name"),"-- Select Meter --",new { id = "meters"})

@Html.Partial("MeterInfoPartial")

如果下拉列表更改,我想加载部分视图.但我不知道我怎么能这样做.我找不到任何关于此的例子.我用actionlink做到这一点.但我之前没有下拉.

控制器参数meter_id等于dropdownlist selectedvalue.

谢谢.

解决方法

您可以订阅下拉列表的.change()事件,然后触发AJAX请求:
<script type="text/javascript">
    $(function() {
        $('#meters').change(function() {
            var meterId = $(this).val();
            if (meterId && meterId != '') {
                $.ajax({
                    url: '@Url.Action("MeterInfoPartial")',type: 'GET',cache: false,data: { meter_id: meterId }
                }).done(function(result) {
                        $('#container').html(result);
                });
            }
        });
    });
</script>

然后你将使用给定id的div包装partial:

<div id="container">
    @Html.Partial("MeterInfoPartial")
</div>

另外,为什么要在控制器操作中进行解析,将其留给模型绑定器:

[HttpGet]
public ActionResult MeterInfoPartial(int meter_id)
{
    var meter = entity.TblMeters.FirstOrDefault(x => x.sno == meter_id);
    return PartialView(meter);
}

注意FirstOrDefault,因为如果在数据库中找不到匹配的记录,则给定meter_id它将返回null,当您尝试访问模型时,部分将崩溃.

原文地址:https://www.jb51.cc/aspnet/251484.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐