asp.net-mvc
  • checkbox
  • 2013-01-17 138 views 2 likes 
    2

    我有每個圖像都有一個複選框旁邊一些像這樣的圖片:通複選框控制器asp.net的MVC

    <input type="checkbox" name="select" value="<%=item.Id%>" /> 
    

    現在我要發送的選擇複選框通過單擊超鏈接到控制器。我有:

    <a href='<%: Url.Action("DeleteSelected", "Product", new { @ShopID = ViewBag.shopIDempty }) %>'>Delete</a> 
    

    和控制器:

    public ActionResult DeleteSelected(int[] select, int ShopID) 
        { 
    
         foreach (int checkBoxSelected in select) 
         { 
          //Do something...    
         } 
         return RedirectToAction("Index"); 
        } 
    

    但沒有通到int []選擇,它是空始終。哪裏不對?

    +0

    如果您想將參數傳遞給DeleteSelected鏈接,您必須手動添加選中的複選框值以在其他情況下鏈接參數,您應該使用帶按鈕單擊的表單和POST檢查項複選框 – vadim

    回答

    0

    做這些==> 1)使其中含有所選擇的複選框值

    var delete= new Array(); 
    
        $('.checkboxed').live('click', function() { 
           if ($(this)[0].checked == true) { 
            var itemdel= $(this).val(); 
            delete.push(itemdel); 
           } else { 
            var remve = $(this).val(); 
            for (var i = 0; i < delete.length; i++) { 
             if (delete[i] == remve) { 
              delete.splice(i, 1); 
              break; 
             } 
            } 
    
           } 
          }); 
    

    2)使上點擊超鏈接

    $.ajax({ 
           type: 'POST', 
           contentType: 'application/json; charset=utf-8', 
           url: '/Product/DeleteSelected' 
    + '?ShopID =' + ShopIdValue, 
           dataType: 'json', 
           data: $.toJSON(delete), 
    
    
           success: function (result) { 
            window.location.href=result; 
           }, 
    
    
           async: false, 
           cache: false 
          }); 
    

    3的AJAX調用數組)讓您的動作像這樣

    public ActionResult DeleteSelected(int[] select) 
    { 
    var shopid= Request["ShopID "]; 
    } 
    
    0

    試試這個:

    [HttpPost] 
    public ActionResult DeleteSelected(FormCollection collection) 
    { 
        try 
        { 
         string[] test = collection.GetValues("select"); 
        } 
        catch (Exception ex) 
        { 
         return null; 
        } 
    } 
    

    我確實想要指出,您正在採取的方法需要一個表單來包裝所有的複選框,或者您需要專門構建一個對象,以便在Syed顯示時發送給控制器。如果您使用表單方式,則需要使用鏈接觸發表單提交或將鏈接轉換爲提交按鈕,併爲商店ID指定一個隱藏字段。

    相關問題