簡體   English   中英

將變量從JavaScript傳遞到控制器

[英]Pass variable from JavaScript to Controller

我有這些復選框,我正在使用JQuery來獲取其值

<div>
    <p> Type:
        <label>
            <input type = "checkbox" name = "types[]" class="filterType" value="Single"/>Single
        </label>
        <label>
            <input type = "checkbox" name="types[]" class="filterType" value="Double"/>Double
        </label>
        <label>
            <input type = "checkbox" name="types[]" class="filterType" value="Suite" />Suite
         </label> </p>

   <input type="submit" value="filter" onclick="exefunction()" />
</div>  


<script>
function exefunction() {
        var checkedVals = $('.filterType:checkbox:checked').map(function () {
            return this.value;
        }).get();
        var typesAtt=checkedVals.join('-');
        }
</script>

如何將typesAtt變量傳遞給RoomController ,在其中可以應用數據庫中的過濾器。 這是Index.cshtml視圖

與一切相同。 您只需發出http請求,然后傳遞您想要的任何內容(作為查詢參數或POST請求時為正文的一部分)。

如果使用jquery發出ajax請求,則必須在前端應用程序中編寫一個處理程序。

您需要將輸入元素保留在表單標簽內,並使用正確的輸入元素名稱。

@using(Html.BeginForm("Filter","Home"))
{
    <div>
        <p>
            Type:
            <label>
                <input type="checkbox" name="types" value="Single" />Single
            </label>
            <label>
                <input type="checkbox" name="types" value="Double" />Double
            </label>
            <label>
                <input type="checkbox" name="types" value="Suite" />Suite
            </label>
        </p>    
        <input type="submit" value="filter"  />
    </div>

}

現在,在“過濾器”操作方法中,您可以有一個稱為types的參數,它是一個字符串數組類型。

[HttpPost]
public ActionResult Filter(string[] types)
{
    // to do : Return something
}

用戶提交表單時,將使用所選復選框的值填充types參數。 例如,如果用戶選擇了“ Single”和“ Suite”,則types參數將是一個由2個項組成的字符串數組,即“ Single”和“ Suite”

要記住的重要一點是,輸入元素的名稱應與操作方法參數名稱匹配。

在客戶端:

$.post("YourUrl",typesAtt,function(){
})

在服務器端:

[HttpPost]
public ActionResult YourActionName(string data)
{

}

暫無
暫無

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

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