首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用选项标签中的Action向控制器发送参数

如何使用选项标签中的Action向控制器发送参数
EN

Stack Overflow用户
提问于 2022-06-03 16:17:14
回答 1查看 44关注 0票数 1

我使用的是一个选择标记,我有一个foreach,它将值添加到列表中,但是我必须调用一个Update,并使用ActionLink传递它的2个参数。我试过这样做,但不起作用。我想知道我做错了什么?

代码语言:javascript
复制
<form action="Update " method="get" class="select-menu">
<select id="sectionId"
        name="sectionId"
        class="selectpicker"
        title="Section"
        data-width="100%"
        data-live-search="true"
        onchange="this.form.submit()">

       @foreach (var item in Model)
       {
           <option value="@item.Text" data-url="@Html.ActionLink(item.Text, "UpdateBoard", new { subSectionID = item.Value, subsectionName = item.Text })"></option>
       }
  </select>
</form>

查询应该类似于下面的http://localhost:60082/Update?subSectionID=27&subsectionName=Something

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-04 14:55:30

以上述方式在select中使用form标记将不能正常工作,因为form没有路由的附加参数(subSectionIDsubsectionName)。因此,Update操作方法将接收subSectionIDsubsectionName参数作为null

因此,要使这些参数动态设置取决于所选内容,请尝试以下操作:

代码语言:javascript
复制
<script type="text/javascript">

    $('#sectionId').change(function () {
        var url = $(this).val();
        if (url != null && url != '') {
            window.location.href = url;
        }
    })

</script>

<select id="sectionId"
        name="sectionId"
        class="selectpicker"
        title="Section"
        data-width="100%"
        data-live-search="true">

    @foreach (var item in Model)
    {
        <option value="@Url.Action("SetLanguage", new { subSectionID = item.Value, subsectionName = item.Text })">@item.Text</option>
    }
</select>

foreach内部使用Url.Action助手而不是Html.ActionLinkUrl.Action助手使用指定的操作名称和路由值为操作方法生成完全限定的URL。

但是Html.ActionLink返回指定链接文本的锚点元素,操作,这可能会在传递到服务器端时引起额外的问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72492454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档