【问题标题】:Choosing item from drop down list then grabbing the Item's ID C#从下拉列表中选择项目,然后获取项目的 ID C#
【发布时间】:2020-04-14 21:07:41
【问题描述】:

您好,我有一个看起来像这样的视图页面

@model PIC_Program_1._0.Models.Shipping
@using PIC_Program_1._0.Models;

@{
    PIC_Program_1_0Context db = new PIC_Program_1_0Context();

    Model.preparedBy = Model.preparedBy != null  ? Model.preparedBy : IGT.user;

}

@using (Html.BeginForm())
{
    @Html.AntiForgeryToken()   
            <table>
                <tr>
                    <th rowspan="3">Items</th>

                    <td>
                        @Html.DropDownList("ItemID", null, null, htmlAttributes: new { @class = "form-control chosen-select", })

                        @{ 
                             Item i = db.Items.Find(int.Parse(Request["ItemID"]));

                             var packedItems = Model.packed(i);
                             var orderedItems = Model.SalesOrder.totalItems(i);

                             var itemMax = orderedItems - packedItems;
                         }

                    </td>                       
                    <td>

                      <input type="number" value="@ViewBag.ItemQ" name="item_qty" class="form-control" max="@itemMax" />

                    </td>

                </tr>

我希望用户能够从下拉列表中选择项目,然后我想抓取用户选择的项目并将其放入方法参数中

【问题讨论】:

  • 不幸的是,这在 C# 函数中是不可能的。一旦网页被渲染和显示,您就不能再运行任何 C# 代码了。这个你需要 javascript/jquery。

标签: c# html css asp.net-mvc razor


【解决方案1】:

在后台

字符串 strDDLValue = Request.Form["ddlVendor"].ToString();

你可以在调试中查看这个来帮助

@Html.DropDownList("ItemsXY", new SelectList(ViewBag.ItemsXY), "Choose Category", new { @class = "form-control" })

$("#ItemsXY").on("change", function () {
 var q = $("#Category").val();

console.log("val = " + q);
});

在您的表单集合中

[HttpPost]
public ActionResult PIC_Program_1(SomeViewModel someMV,FormCollection form)
{           
  string strDDLValue = form["ItemsXY"].ToString();    
  return View(MV);
}

string strDDLValue = Request.Form["ItemsXY"].ToString();

如果您还需要所选项目的文本,请添加一个隐藏字段并在下拉选择更改时在隐藏字段中设置所选项目文本:

更新您的模型以保存隐藏值

// Add this to your VM
public string SelectItemsXY {get;set;}
public string SelectedItemsXYText { get; set; }

<script type="text/javascript">
$(function(){
$("#ItemsXY").on("change", function {
   $("#SelectedvendorText").val($(this).text());
 });
});
</script>

@Html.DropDownListFor(m=>m.SelectedItemsXY , Model.ItemsXY, "Select ItemsXY")
@Html.HiddenFor(m=>m.SelectedItemsXYText)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-03
    • 2013-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多