首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ActionResult在使用[AcceptVerbs(HttpVerbs.Post)]时未被调用

ActionResult在使用[AcceptVerbs(HttpVerbs.Post)]时未被调用
EN

Stack Overflow用户
提问于 2013-12-10 10:33:36
回答 3查看 727关注 0票数 2

控制器中的ActionResult没有被调用。这一页很清爽。检查我的代码如下:

代码语言:javascript
复制
@using (Html.BeginForm())
{
    @Html.ValidationSummary(true)

    <fieldset>
        @if (@ViewBag.Message != null)
        {
            <p style="color: #b94a48;">@ViewBag.Message</p>
        }    

        @Html.HiddenFor(model => model.Id)      

        <div class="form-group">

            <label class="control-label visible-ie8 visible-ie9">Username</label>
            <div class="input-icon">
                <i class="fa fa-user"></i>

                @Html.TextBoxFor(model => model.UserName, new { @placeholder = "Email", @class = "form-control placeholder-no-fix" })

                <p style="color: #b94a48;">@Html.ValidationMessageFor(model => model.UserName)</p>
            </div>
        </div>    

        <div class="form-group">
            <label class="control-label visible-ie8 visible-ie9">Password</label>
            <div class="input-icon">
                <i class="fa fa-lock"></i>    

                @Html.PasswordFor(model => model.Password, new { @placeholder = "Password", @class = "form-control placeholder-no-fix" })

                <p style="color: #b94a48;">@Html.ValidationMessageFor(model => model.Password)</p>
            </div>
        </div>
        <div class="form-actions">
            <div>
                <label class="checkbox">
                    @Html.CheckBoxFor(model => model.RememberMe, new { @class = "remember" }) Remember me
                </label>
            </div>
            <button type="submit" class="btn blue pull-right">
                Login <i class="m-icon-swapright m-icon-white"></i>
            </button>

        </div>

    </fieldset>
}

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Login(AccountViewModel model, FormCollection args, string ReturnUrl)
{
}

RouteConfig:

代码语言:javascript
复制
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
        routes.MapRoute("SJSS", "{controller}/Show/{assetCode}/{action}/{id}", new { controller = "Asset", action = "Index", id = UrlParameter.Optional });
        routes.MapRoute("Default", "{controller}/{action}/{id}", new { controller = "Account", action = "Home", id = UrlParameter.Optional });
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-12-10 11:15:41

尝试将您的@Html.BeginForm更改为:

代码语言:javascript
复制
@Html.BeginForm("***Action Name***", "***Controller Name***", FormMethod.Post)
{
}
票数 1
EN

Stack Overflow用户

发布于 2013-12-10 11:12:59

我在这里可能弄错了,但是尽管你的代码有点混乱,我还是找不到你发到的网址,我的意思是,你的表单操作是空的,即使你提交了,mvc怎么知道该调用哪个操作呢?

尝试在Html.BeginForm上设置操作和控制器参数。

编辑:查看@的答案,看看一个可能完全适合您的案例。

票数 0
EN

Stack Overflow用户

发布于 2013-12-10 11:16:23

您需要为您的表单指定一个"Action“、"Controller”和"Form method“。见以下代码:

代码语言:javascript
复制
@using (Html.BeginForm("Login", "Account", FormMethod.Post))
{
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20492065

复制
相关文章

相似问题

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