簡體   English   中英

根據下拉列表值MVC更改操作名稱

[英]change action name depending of dropdownlist value MVC

是否可以根據下拉列表值更改操作名稱?

這是下拉列表

@{Html.DropDownList("import", @ViewData["list"] as SelectList)}

和形式

@using (Html.BeginForm(dropdownlist.value(), "Files", FormMethod.Post, new { enctype = "multipart/form-data" }))

我怎樣才能做到這一點?

您必須在客戶端執行此操作。 嘗試這個。

  @{Html.DropDownList("import", @ViewData["list"] as SelectList)}

    <script type="text/javascript">

        $('select[name=import]').change(function () {
            document.formsame.action = "controllerName" + $(this).val();
        });

    </script>

有兩種方法可以完成此操作。 一種是使用Jquery處理選擇事件和控制器調用。 這需要一些設計決策,例如是否進行AJAX調用。 可以在客戶端實現並遵循您已經開始使用的方法的另一種解決方案如下:

Html.DropDownList("import", ViewData["list"] as SelectList, 
                new 
                { 
                    onchange = @"
                    var form = document.forms[0]; 
                    form.action='controllerName';
                    form.submit();" 
                } )

最后,我還沒有測試它,並且不確定它是否被認為是一種好習慣,但是您可以通過使用默認控制器來處理此服務器端,該默認控制器將使用這些下拉菜單並決定如何重定向它們。 可以肯定的是,由於您正在通用控制層中執行一些業務邏輯,因此最好的做法是不要這樣做,但這可能對您有用嗎?

暫無
暫無

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

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