簡體   English   中英

如何將值從jQuery腳本傳遞到MVC剃刀視圖中的ActionLink

[英]How to pass value from jQuery script into ActionLink in MVC razor view

大家好,我希望所有的快速問題。

我想將jQuery腳本中的值傳遞到HTML.ActionLink中以詳細說明控制器中的操作

它的工作方式就像我在下拉列表中選擇項目,在jQuery中,我想獲得該項目的ID后,我希望將該ID傳遞到ActionLink中,如何實現它或我想在代碼中進行的更改。

<script>
$(function() {
       $('#reductions').change(function () {
           var Id = $('#reductions').val();
           });
       });
</script>

        <div class="form-horizontal">
            <div class="form-group">
                <div class="col-md-10">
 @Html.DropDownList("reductions", new SelectList(dbContext.Reductions,"ReductionId", "Name")  
                </div>
            </div>
        </div>
@Html.ActionLink("Details", "Details", "Reductions", new {id = ????WHAT PUT HERE?????}, new {})

請告訴我我應該在腳本區域或Action Link中進行哪些更改,以使我可以工作。 我已經研究了很多例子,但似乎沒有人為我工作

無需使用ActionLink方法,而是創建普通的HTML鏈接並使用jquery覆蓋href屬性。

<script>
   $(function() {
    var link = '@Url.Action("Details", "Details", "Reductions", new { id = "_myid_" })';
    $('#reductions').change(function () {
       var id = $('#reductions').val();
       $('#myLink').attr('href', link.replace('_myid_', id);
       });
   });
</script>

... Your other html

<a id="myLink" href="">Details</a>

與其使用普通的HTML表單,不如這樣:

@using(HTML.BeginForm("Details","Reductions"))
{
  //Your current HTML
}

您還應該像這樣使用@ HTML.DropDownListFor()幫助器:

@Html.DropDownListFor("reductions", new SelectList(DBContext.Reductions, "ReductionId", "Name"), new { @class = "anyCSSClass" })

用這個替換您當前的@ HTML.DropDownList()幫助器。

要完成此操作,您必須將表單數據提交給服務器,如下所示:

button type="submit" class="CSSClass" id="generatedContent"> Generate </button>

這是最終代碼:

@using(HTML.BeginForm("Details","Reductions"))
{
  @Html.DropDownListFor("reductions", new SelectList(DBContext.Reductions,  "ReductionId", "Name"), new { @class = "anyCSSClass" })

  button type="submit" class="CSSClass" id="generatedContent"> Generate </button>
}

您可以使用JQuery / AJAX來完成此操作,但是它違反了MVC的基本概念,並使服務器端邏輯與客戶端邏輯分離,因此麻煩多於其價值。

PS如果我混淆了控制器/動作方法的名稱,請在此處查看兩個助手的重載方法。

暫無
暫無

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

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