如何将下拉列表选定的数据传递到另一个表并在 asp.Net MVC 中更新该表

Posted

技术标签:

【中文标题】如何将下拉列表选定的数据传递到另一个表并在 asp.Net MVC 中更新该表【英文标题】:How to pass dropDown list Selected data to another table and update that table in asp.Net MVC 【发布时间】:2021-10-28 17:26:12 【问题描述】:

控件类将输入数据保存到 Invoice 表中。

这是我的控制类

public ActionResult UpdateInvoice()
   var getProduct = db.InventoryTbs.ToList();
        SelectList list = new SelectList(getProduct, "PId", "PName", "PPrice");
        ViewBag.Product = list;
    return View();


[HttpPost]
public ActionResult UpdateInvoice(InvoiceTb idetail)

    if (Session["User"] == null)    // doesn't work
    
        return RedirectToAction("Login");
    
    else
    
        try
        

            db.InvoiceTbs.Add(idetail);
            db.SaveChanges();

            return RedirectToAction("ShowInvoice");
        
        catch
        
            return View();
        
    

这是我的UpdateInvoice.cshtml。在这里,如果我输入 Lquantity 和 Bill 值,就会保存到 Invoice 表中。

我创建了一个下拉列表,显示另一个表(库存)中存在的项目。但它不会添加到 Invoice 表中。 输入数量后,我希望它从库存表中选择产品价格来计算账单

我尝试了 Json 和其他一些方法,但没有成功。

@model TallyBook_Store_Management_System.Models.InvoiceTb

@
    ViewBag.Title = "UpdateInvoice";
    var product = ViewBag.Product;


<h2>UpdateInvoice</h2>

@using (Html.BeginForm())

    @Html.AntiForgeryToken()

    <div class="form-horizontal">
        <h4>InvoiceTb</h4>
        <hr />
        @Html.ValidationSummary(true, "", new  @class = "text-danger" )
        <div class="form-group">
            @Html.LabelFor(model => model.ListName, htmlAttributes: new  @class = "control-label col-md-2" )
            <div class="col-md-10">
                @Html.DropDownList( "Product", "Select")
                @Html.ValidationMessageFor(model => model.ListName, "", new  @class = "text-danger" )
            </div>
        </div>

        <div class="form-group">
            @Html.LabelFor(model => model.LQuantity, htmlAttributes: new  @class = "control-label col-md-2" )
            <div class="col-md-10">
                @Html.EditorFor(model => model.LQuantity, new  htmlAttributes = new  @class = "form-control"  )
                @Html.ValidationMessageFor(model => model.LQuantity, "", new  @class = "text-danger" )
            </div>
        </div>

        <div class="form-group">
            @Html.LabelFor(model => model.Bill, htmlAttributes: new  @class = "control-label col-md-2" )
            <div class="col-md-10">
                @Html.EditorFor(model => model.Bill, new  htmlAttributes = new  @class = "form-control"  )
                @Html.ValidationMessageFor(model => model.Bill, "", new  @class = "text-danger" )
            </div>
        </div>

        <div class="form-group">
            <div class="col-md-offset-2 col-md-10">
                <input type="submit" value="Create" class="btn btn-default" />
            </div>
        </div>
    </div>


<div>
    @Html.ActionLink("Back to List", "Index")
</div>

【问题讨论】:

【参考方案1】:

我通过将下拉列表选择的数据从视图传递到控制器解决了这个问题。然后我在Controller中更新了具体的数据库表。

如果有其他有效或好的方法请分享,我想学习更多更好的方法。

【讨论】:

以上是关于如何将下拉列表选定的数据传递到另一个表并在 asp.Net MVC 中更新该表的主要内容,如果未能解决你的问题,请参考以下文章

将下拉菜单中的选定值发送到另一个页面

保存下拉列表的选定值并在另一个下拉列表/重复下拉列表中默认分配它

Angular2:如何将选定项目从 HTML 数据列表元素传递回组件?

我如何从 mvc 的剑道 ui 网格的下拉列表中获取选定的值

使用jQuery同时设置两个下拉列表的选定值

将下拉列表中的值从一个 php 传递到另一个