簡體   English   中英

Html.ActionLink文本框值

[英]Html.ActionLink Textbox Value

我需要把這個值:

  @Html.DropDownList("region", new[]{ 
           new SelectListItem() { Text = "MA", Value = "MA" },
                new SelectListItem() { Text = "BC", Value = "BC" },
                     new SelectListItem() { Text = "ON", Value = "ON" },

          })

進入這里:

@Html.ActionLink("<<", "List", new { page = 1, sortOrder = ViewBag.CurrentSort, currentFilter = ViewBag.CurrentFilter, zipCode = ViewData["zipCode"], searchType = ViewData["searchType"], distance = ViewData["distance"], region = ViewData["region"], country = ViewData["country"] })

單擊鏈接時,ViewData [“ region”]為null,無法獲取該值。 如何將DropDownList的區域值放入查詢字符串? 我在代碼中將區域設置為MA的默認值:

public ViewResult List(string sortOrder, string currentFilter, string searchString, int? page, string zipCode, string region, int? distance, string searchType, string country)
    {
        _storeService = new StoreService();

         //sets defaults
         if (String.IsNullOrEmpty(zipCode))
         {
             zipCode = "02472";
         }

         if (String.IsNullOrEmpty(region))
         {
             region = "MA";
         }
    }

由於您無法在頁面加載時設置URL,因此我只需將一個點擊偵聽器添加到錨標記,然后在其中更新鏈接:

@Html.ActionLink("<<", "List", new { ... },
    new { onclick = "updateLink(this);" })

處理程序應從region下拉列表中檢索該區域,並更新鏈接的href

function updateLink(anchor) {
    var select = document.getElementById('region');
    var region = select.options[select.selectedIndex].value;
    anchor.href = e.href + "&region=" + region;
}

當用戶看到您的頁面時,它已經使用鏈接值進行了渲染,我想您希望在用戶做出選擇后將所選值放置在該鏈接中。 客戶端的東西。 從您的代碼中-您將一個ViewData [“ region”]的值傳遞給控制器​​,該值從一開始就沒有填充在控制器上。 這就是為什么您會得到null的原因。 使用ajax填充選擇更改后的視圖數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM