如何在MVC View中从自动弹出窗口中获取ID?

时间:2014-03-29 05:35:36

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

我正在开发ASP.NET MVC应用程序。

我的下拉菜单没有完全下降,但我已经给出了下拉的感觉。

用户可以在列表中添加n个产品。

当用户开始在文本框中键入内容时,以输入字符开头的产品将开始显示在该文本框的下方。看图像......

enter image description here

从下拉菜单中选择项目时工作正常。

现在,当我想获得用户添加的产品的产品ID时,就会出现问题。

我想获得用户添加的产品ID数组。

我的控制器代码

  public ActionResult NewvendorList(string term)
        {
            var results = new[] 
             {
            new { id = "1", label = "Suraj Metels" },
            new { id = "2", label = "A.B. Infra" },
            new { id = "3", label = "Momin Brother" },
            new { id = "4", label = "Fort"},
            new { id = "5", label = "Malabar Hill" },
            new { id = "6", label = "A.B.C. Limited" },

            };
            var result3 = results.Where(s => s.label.ToLower().StartsWith(term.ToLower())).Select(w => w).ToList();       
            return Json(result3, JsonRequestBehavior.AllowGet);
        }

Forms View Code,用于从Controllers方法中获取数据的Jquery代码...

<script type="text/javascript">

    $(document).ready(function () {
        var i = 0;


        $("#lnkAddProduct").on("click", function () {
            //$('#ProductId').val("");
            @*var url = "@Url.Content("~/Scripts/GeneralScript.js")";
                 $.getScript(url, function () {
                 });*@
            var d = '<div class="addedProduct "><div class="control-group " style="margin-bottom:10px;"><input type="text" class="ProductName span2 pull-left" id="Product_Name_' + i + '" name="Product_Name" value="" placeholder="start typing to load products" )"/><input type="hidden" class="ProductCode" name="Product_Code" id="ProductCode_' + i + '" value=/><a href="#" class="clsremove font-midium" style="margin-left:5px;margin-top:5px;" id="remove_' + i + '">remove</a></div></div>';
            $('#ProductList').append(d);
            alert("newID:"+i);

            $(".clsremove").unbind("click").click(function () {
                $(this).closest(".addedProduct").remove();
            });


            $('body').delegate(".ProductName", "focusin", function () {
                $(this).autocomplete({
                    source: '@Url.Action("NewvendorList","Product")',

                minLength: 1,

                select: function (evt, ui) {


               $("#Product_Name_"+ i ).val(ui.item.label);


               $("#ProductCode_" + i).val(ui.item.id);

               alert($("ProId" + $("#ProductCode_" + i).val(ui.item.id)));


                }


            });
            });

            i = i + 1;          
        });       
    }); 


</script>

如何在保存记录时获取此ID?

1 个答案:

答案 0 :(得分:0)

这可能就是你想要的。

onclick按钮的

create你调用jquery处理程序并获取div或spans的值,无论你使用什么,并将所有这些值放在数组中。然后你可以将数组的值赋给一些隐藏的元素,并在提交表单

的控制器端访问它
var ids=[];
$('span[id^=ProductCode]').each(function(){
    ids.push(parseInt($(this).text()));
});
var st=ids.join();
alert(st);
$('#hdn').val(st);

FIDDLE