我好像搞不清楚这个问题。我有一个视图页面,用于向订单添加产品。有一个下拉列表,您可以在其中选择要添加的产品。一旦您选择了一个产品,我有一个onchange函数,它基本上将Product ID的值插入到一个隐藏的输入字段中。我遇到的问题是,我有一个指向不同控制器和不同型号的操作链接,这样我就可以'当我使用id参数时,不要只使用Model.ProductID。是否有一种方法可以获得输入字段的值(本质上是所选产品的ProductID值),并将其用作actionlink上的id参数?actionlink打开一个产品视图,其中显示产品的图片和库存数量。但当我单击该链接时,它没有获得所选产品的id值。
下面是我的查看页面的相关部分:
<div class="form-group">
<label class="lbl3">Product:</label><span class="required"> *</span><label class="ddl1">@Html.DropDownListFor(model => model.ProductID, ViewBag.ProductID as SelectList, "--Select a Product--", new { @class = "form-control prod-ctl", @onChange = "selectedText(this)" })</label>
<input type="hidden" id="txt" name="poProduct" required />
<label class="lbl2">Qty Ordered:</label><span class="required"> *</span><input type="text" inputmode="numeric" class="col-md-3 form-control qty-ctl" name="poQtyOrdered" id="poQtyOrdered" required />
<label class="chk-link"><a class='prod-modal chk-stock' href="@Url.Action("AmtInStock", "Products", new { id = "THIS IS WHERE IM STUCK" })"><span class="fa solid fa-search"> <u>Check Stock</u></span></a></label>
<script>
function selectedText(ddlitem) {
var selvalue = ddlitem.value;
var seltext = ddlitem.options[ddlitem.selectedIndex].innerHTML;
$('#txt').val(selvalue);
}
</script>
下面是我的actionlink控制器:
public ActionResult AmtInStock(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
var product = db.Products.Find(id);
if (product == null)
{
return HttpNotFound();
}
return PartialView("AmtInStock", product);
}
最后,这里是主页面的控制器中的ddl代码:
ViewBag.ProductID = new SelectList(db.Products, "ProductID", "Product_Code");
因此,我需要能够在下拉列表中选择一个产品,如果我单击actionlink,我需要能够获得所选项目的值,以传入id参数。
谢谢基普·M。
1条答案
按热度按时间nue99wik1#
所以我终于能够弄清楚如何做到这一点,并让它完美地工作。这个方法不需要一个post方法。它会让你使用下拉列表选择的id值在行动链接。我不得不使用一个javascript函数,基本上手动更改href属性,以包括在末尾的id值。我不得不给予行动链接一个id,我命名为“chkID”。然后,每当下拉列表选项发生变化时,它就会调用该元素id并使用新的选项id值更改href Url Action。
查看页面: