从Modal窗口向Controller传递参数

时间:2013-07-26 15:23:37

标签: jquery asp.net-mvc asp.net-mvc-4

Modal JQuery

<script type="text/javascript">
    $(document).ready(function () {
        $('#submit').click(function (e) {
            var locked = '@ViewBag.Locked';
            if (locked) {
                e.preventDefault();
                $('#accountLocked').reveal();
            }
        });
    });
</script>

Popup Div

<div id="accountLocked" class="reveal-modal">
        @using (Html.BeginForm("EmailHelpDesk", "Account", FormMethod.Post))
        {
            <h1>Account Locked</h1>
            <p>Please provide your email address and you'll be contacted shortly.</p><br/>
            <input type="email" id="email" name="email"/>
            <input type="submit" id="submitEmail" name="submit"/>
        }
    </div>

AccountController中的EmailHelpDesk ActionResult

[HttpPost]
    [AllowAnonymous]
    public ActionResult EmailHelpDesk(string email)
    {
        var Email = email;
        return RedirectToAction("Create", "User");
    }

代码没有在Action上中断,我不明白为什么。我做错了吗?

模式会弹出,但EmailHelpDesk方法不会执行。提交时,模态只是消失,没有任何反应。

2 个答案:

答案 0 :(得分:0)

我相信你的行var locked = '@ViewBag.Locked';应该受到指责。你在做什么(假设值是假的),写道:

var locked = 'false';

请注意,它是一个字符串。字符串"false"实际上是真实的。如果您将其更改为:

var locked = @ViewBag.Locked;

然后它将呈现为:

var locked = false;

然后我希望它能起作用。

答案 1 :(得分:0)

我的解决方案按原样运行。我在CSHTML页面中错过了一个结束的大括号。