Javascript MVC5:如何使用ajax更新父视图中的RenderAction(带参数)在下拉更改事件中返回的PartialView?

Javascript MVC5:如何使用ajax更新父视图中的RenderAction(带参数)在下拉更改事件中返回的PartialView?,javascript,jquery,ajax,asp.net-mvc,Javascript,Jquery,Ajax,Asp.net Mvc,我在StackOverflow和其他网站上尝试了很多解决方案,但我无法让它发挥作用。我需要能够用ajax更新页面上的PartialView。我已经设法使用不引人注目的ajax来连接已更改的事件,但是我无法更新PartialView 以下是我的视图标记: <div class="form-group"> <label class="control-label">Select a Physician</label> @Html.DropDown

我在StackOverflow和其他网站上尝试了很多解决方案,但我无法让它发挥作用。我需要能够用ajax更新页面上的PartialView。我已经设法使用不引人注目的ajax来连接已更改的事件,但是我无法更新PartialView

以下是我的视图标记:

<div class="form-group">
     <label class="control-label">Select a Physician</label>
     @Html.DropDownList("ddlPhysicians",SelectList)ViewData["physicianList"], new { @class = "form-control" })     
     @Html.Action("GetSelectProviders", "PreCert")
</div>
以下是我希望使用参数调用的控制器方法:

public ActionResult GetSelectProviders(string id)
{
        PhyProviderFinalEntities phyProviderEntities = new PhyProviderFinalEntities();

        if (id == null)
        {
            var mpt = new MainProviderTable();
            return PartialView("_PhysicianData", mpt);
        }

        int myId;
        var holder = int.TryParse(id, out myId);

        if (!holder)
        {
            var mpt = new MainProviderTable();
            return PartialView("_PhysicianData", mpt);
        }

        var mptData = phyProviderEntities.MainProviderTable.FirstOrDefault(p => p.PhysId == myId);
        return PartialView("_PhysicianData", mptData);
    }

任何帮助都将不胜感激。我做错了什么?有没有更干净的方法呢?

有点不清楚你想做什么。您希望var selectedId=$this.val;回来?而且你从来没有用过它$form.serialize将发布DDL:其中是所选选项的值,但您的方法需要参数string id而不是string ddlPhysiciansvar selectedId=$this.val;尝试将结果发送到返回部分视图的控制器时留下的。本质上,我想让用户在DDL中选择一个值,并将该值发送到一个控制器,该控制器返回一个类型化的partialview,ajax使用partialview中的内容更新一个div。对不起,问题中的代码有问题。绝望会让人有点邋遢。然后它只需要是$'ddl.changefunction{$'xxx.load'@Url.ActionGetSelectProviders',{id:$this.val};};其中xxx是要渲染局部视图的元素的id。我明天可以尝试一下。谢谢。我试过了,javascript被调用了,但是动作没有。我不确定这里出了什么问题。
public ActionResult GetSelectProviders(string id)
{
        PhyProviderFinalEntities phyProviderEntities = new PhyProviderFinalEntities();

        if (id == null)
        {
            var mpt = new MainProviderTable();
            return PartialView("_PhysicianData", mpt);
        }

        int myId;
        var holder = int.TryParse(id, out myId);

        if (!holder)
        {
            var mpt = new MainProviderTable();
            return PartialView("_PhysicianData", mpt);
        }

        var mptData = phyProviderEntities.MainProviderTable.FirstOrDefault(p => p.PhysId == myId);
        return PartialView("_PhysicianData", mptData);
    }