[英]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.