首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Html.BeginForm不传递参数

Html.BeginForm不传递参数
EN

Stack Overflow用户
提问于 2011-11-30 00:44:42
回答 2查看 4.1K关注 0票数 1

下面的代码填充下拉列表并自动提交表单,但它不会将id传递回控制器。

代码语言:javascript
复制
<script type="text/javascript">
    $(function () {
        $("#ArticleID").change(function () {
            $('#TheForm').submit();
        });
    });
</script>

@using (Html.BeginForm("Details", "Article", FormMethod.Post, new { id = "TheForm" })){
    @Html.DropDownList("ArticleID", (SelectList)ViewBag.ArticleId, "Select Article") 
}

我得到:

代码语言:javascript
复制
/Article/Details

但需要:

代码语言:javascript
复制
/Article/Details/1

我遵循的是一个教程,在这一点上停止。我不太清楚关于TheForm是怎么回事,我试着把ArticleID放进去,但那没有用。我该怎么做?

我也尝试过没有像这样的jQuery,

代码语言:javascript
复制
@using (Html.BeginForm("Details", "Article", FormMethod.Post, new { id = "TheForm" })){

@Html.DropDownList(
"ArticleID",
(SelectList)ViewData["Articles"],
"Please Select an Article",
     new
     {
         onchange = "document.getElementById('TheForm').submit();"
     })
 }

但它也不发送参数。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-30 00:52:19

在页面呈现如下行之前,将确定url:

代码语言:javascript
复制
@using (Html.BeginForm("Details", "Article", FormMethod.Post, new { id = "TheForm" }))

这使:

代码语言:javascript
复制
<form action="/Article/Details" id="TheForm" method="post">

由于要添加到Url的值ArticleID是由下拉选择确定的,因此需要使用JavaScript操作表单的action属性。

像这样的东西可能会起作用:

代码语言:javascript
复制
<script type="text/javascript">
    $(function () {
        $("#ArticleID").change(function () {
            // The following line was changed to use @naspinski's suggestion
            var actionUrl = '@Url.Action("Details", "Article")/' + $('#ArticleID').val();
            $('#TheForm').attr('action', actionUrl);
            $('#TheForm').submit();
        });
    });
</script>

这么说,我觉得很尴尬。这可能值得考虑如何使用或如何使用该价值。它真的需要成为路线的一部分吗?如果没有,则可以完全避免操作action属性。

票数 0
EN

Stack Overflow用户

发布于 2011-12-18 13:22:28

有一个内置的方式可以在不选择操作的情况下呈现此操作:

代码语言:javascript
复制
var actionUrl = '@Url.Action("Details", "Article")/' + $('#ArticleID').val();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8319767

复制
相关文章

相似问题

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