【问题标题】:How to pass ID of selected dropdown-list to partial view如何将所选下拉列表的 ID 传递给部分视图
【发布时间】:2015-01-26 23:42:33
【问题描述】:

我有一个包含下拉列表的索引视图:

@Html.DropDownList("ABC", (SelectList) ViewBag.ABC,
    "-- Select item --", new { @onchange ="funcVes(this.value)"})
<div id="Vresult">

</div>

位于该索引视图顶部的 JavaScript 表示

function funcVes(e) {
    alert(e);
    $("#tabs").tabs();
    $('#tabsDiv').show();
    $('#Vresult').load('/ABC/PartialAction?id=' + e);
};

PartialAction 方法这样做:

public ActionResult PartialAction(int id) {
    return PartialView("_PVIEW");
}

现在,_PVIEW 有许多文本框字段,我需要从控制器端填充这些字段

_PVIEW

@model Project.ViewModels.VD

//...scripts
//...begin form..

@Html.EditorFor(model => model.Main_ID) //for dropdownlist
//...20 similar boxes for related information pertaining to that dropdownlist

查看模型

包含索引模型和构建局部视图的底层模型

public class VD
{
    public int? Main_ID { get; set; }

    public a aa { get; set; } //underlying models/tables which contain the information for the 20 textboxes to be filled out
    public b bb{ get; set; } //index model
}

我基本上需要根据下拉列表选择填写这个视图...

更改了索引和部分视图以使用包含它们独立模型的相同视图模型。

对于通过控制器/javascript 将从下拉列表中选择的 id 传递到部分视图中包含的文本框及其相关信息到其他表有任何帮助吗?

【问题讨论】:

    标签: jquery asp.net-mvc asp.net-mvc-partialview


    【解决方案1】:

    您的PartialAction 不获取任何数据或为其视图提供模型。当您使用带有局部视图的$.load 时,“当前加载的页面”没有提供数据或模型。 PartialAction服务器请求是完全独立的,所以需要自己获取数据。

    您可以简单地设置 VD 模型实例的属性并将模型提供给视图,如下所示:

    public ActionResult PartialAction(int id) {
        var data = someDataModel.Find(id);
        var vm = new VD()
        {
           Main_ID = id,
           aa = data.aa,
           bb = data.bb
        };
        return PartialView("_PVIEW", vm);
    }
    

    如果您使用 Fiddler 之类的工具或 Chrome F12“网络”标签来查看网络流量,您将看到正在传递的原始页面以及其中的内容。这可能有助于您了解请求和视图之间的关系。

    【讨论】:

    • @Newbie101:显然你认为你更新了它,但你的更改不可见:)
    • ps @TrueBlueAussie ur ans 能够为我获取 id...现在我如何将它(以及与此 id 相关的所有相关字段)推回字段设置了相应模型框的局部视图?
    • @Newbie101:我的更新有帮助吗?我不知道您使用的是什么数据模型,所以我只是放了一个虚拟占位符(看起来有点像实体框架Find 调用)
    • 是的,这正是我所在的轨道,但是我必须为多个表单执行此操作,并且想知道是否有一种简单的方法可以加载所有字段(实际上属于一个表)?但不知何故,数据没有显示在视图中。我仅使用 Main_ID 字段进行了尝试,但未显示
    • @Newbie101:此时您确实需要显示完整的代码,因为问题可能出在其他地方
    猜你喜欢
    • 1970-01-01
    • 2019-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多