我有一个在我的布局中使用的ViewComponent。 ViewComponent包含一个下拉列表,其中包含已登录用户的广告系列列表。所选项目是用户当前的广告系列(存储在数据库中)
我想通过以下方式处理下拉列表的onchange事件:
我想在这种情况下我应该调用一个控制器方法,该方法可以处理我需要的一切,但是我不知道如何直接从javascript中进行操作。
我尝试了以下对我不起作用的方法: 处理javascript中的onchange事件并在其中执行以下代码:
var selectedId = $("#CurrentCampaignDropdown").val();
$.get("/CampaignSummary", {currentCampaignId: selectedId});
答案 0 :(得分:0)
最后,我能够找到解决问题的方法。
最后,除了一行以外,我什至不需要JavaScript代码。这是我的代码示例:
_Layout.cshtml 代码:
@await Component.InvokeAsync($"{ViewComponentName}", /* parameters for view component */)
ViewComponent .cshtml 代码:
@using (Html.BeginForm("ConrollerMethodName", "ControllerName", FormMethod.Post))
{
@Html.DropDownList("CurrentCampaignId", new SelectList(/* parameters */), new {onchange = "this.form.submit()"})
}
控制器代码:
public IActionResult ControllerMethodName(int currentCampaignId) //The name of the parameter should be the same as the first parameter in DropDownList method. Otherwise, it will be null.
{
//Save your data
RedirectToAction(nameof(ActionYouNeed));
}
我希望它将对某人有所帮助。
感谢克里斯·普拉特(Chris Pratt)和阿文·卡维什(Avin Kavish)带领我朝着正确的方向前进。