Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript未向控制器MVC发送参数_Javascript_C#_Asp.net Mvc_Razor_Asp.net Mvc 5 - Fatal编程技术网

JavaScript未向控制器MVC发送参数

JavaScript未向控制器MVC发送参数,javascript,c#,asp.net-mvc,razor,asp.net-mvc-5,Javascript,C#,Asp.net Mvc,Razor,Asp.net Mvc 5,我有以下看法 @using System.Linq; @model MyCompanyNET.Models.ViewModels.AdministratorViewModel <style type="text/css"> span { padding-right: 10px; } ... </style> <div class="manage"> <ul class="nav nav-tabs" id

我有以下看法

@using System.Linq;
@model MyCompanyNET.Models.ViewModels.AdministratorViewModel

<style type="text/css">
    span {
        padding-right: 10px;
    }
    ...
</style>

<div class="manage">
    <ul class="nav nav-tabs" id="myTab">
        <li class="active">
            <a data-toggle="tab" href="#invite">
                <span class="glyphicon glyphicon-inbox"></span>Invite
            </a>
        </li>
        ...
    </ul>
    <div class="tab-content">
        <div id="invite" class="tab-pane active fade in">
            @Html.Partial("_InvitePartial", Model)
        </div>
        ...
    </div>
</div>
@section scripts {
    <script>
        $(function () {
            $("input[type=button]").click(function () {
                var data_email = $('#email').val();
                var data_product = $('#product option:selected').text();
                $.ajax({
                    url: '@Url.Action("SendInvite")',
                    type: 'POST',
                    data: { email: data_email, product: data_product },
                    success: function (result) {
                        $('#fail_message').html(result.result_failure);
                        $('#success_message').html(result.result_success);
                    }
                });
            });
        });
    </script>
}
使用提交

现在它调用我的控制器方法,但没有email参数,该参数始终为null。更糟糕的是,返回Jsonnew。。。也不会渲染我的s,它以前在主视图中使用过。为什么会发生这种情况?我是如何解决的


谢谢您的时间。

电子邮件字段的名称是EmailAddress而不是email。。将参数名称更改为字符串EmailAddress,也可以将标记更改为字符串EmailAddress

@Html.TextBoxFor(m => m.EmailAddress, new { @class = "form-control", Name="email", id = "email" })

诀窍是使字段名称与参数名称匹配,而不是id。

电子邮件字段的名称是EmailAddress而不是email。。将参数名称更改为字符串EmailAddress,也可以将标记更改为字符串EmailAddress

@Html.TextBoxFor(m => m.EmailAddress, new { @class = "form-control", Name="email", id = "email" })


诀窍是让字段名和参数名匹配,而不是id。

尝试用HttpPost修饰动作方法,关于表单提交,尝试用HttpPost修饰动作方法。您是否将其改回type=button而不是type=submit?如果没有,原因是当您单击该按钮时,它将提交它并忽略您的JavaScript。

Killercam,关于您的表单提交。您是否将其改回type=button而不是type=submit?如果没有,原因是当你点击按钮时,它会提交它并忽略你的JavaScript。

你看过HTML/调试你的JavaScript吗?伙计,我太傻了,我不知道如何调试JavaScript。我曾尝试在VS2013的javascript中设置断点,但它们从未被击中。有任何链接或建议吗?如果您在Chrome中打开调试控制台,不确定其他人是否有,请转到“网络”选项卡并提交表单。您应该会在框中看到一个新请求,单击它并查看表单数据。我暗自怀疑,这封邮件的名称与.NET预期的不同。无论哪种方式,它都会让您知道问题是出在您的视图还是控制器上。您需要从浏览器调试javascript。视图渲染完成后,MVC将对其进行处理,直到调用另一个方法为止。这就是网络的无状态特性。伙计们,非常感谢你们的帮助,非常感谢。我在一家小公司工作,被要求开发一个新网站。进展顺利,但我没有任何经验,这对马非常有价值,所以非常感谢你的时间。你看过HTML/调试你的JavaScript吗?老兄,我太不知道如何调试JavaScript了。我曾尝试在VS2013的javascript中设置断点,但它们从未被击中。有任何链接或建议吗?如果您在Chrome中打开调试控制台,不确定其他人是否有,请转到“网络”选项卡并提交表单。您应该会在框中看到一个新请求,单击它并查看表单数据。我暗自怀疑,这封邮件的名称与.NET预期的不同。无论哪种方式,它都会让您知道问题是出在您的视图还是控制器上。您需要从浏览器调试javascript。视图渲染完成后,MVC将对其进行处理,直到调用另一个方法为止。这就是网络的无状态特性。伙计们,非常感谢你们的帮助,非常感谢。我在一家小公司工作,被要求开发一个新网站。一切进展顺利,但我没有任何经验,这对马非常有价值,所以非常感谢你的时间。精彩的解释,谢谢。对这很陌生,所以这真的很有帮助。最后一件事,你知道为什么我的Json返回值现在无法显示标签,而只是显示一个带有文本的空白屏幕吗?这就是答案,如果你能告诉我为什么我的标签无法呈现,这就是悬赏!听起来您的表单实际上是在提交,而不是由javascript函数处理。。既然您使用ajax发回数据,那么您是否还需要这些数据呢?我真的不知道。我在网上举了一个例子,并建立了它。我真的只有很少的web/MVC知识。。。你觉得我应该把这个拿出来?这对你来说可能没有多大意义,但我试图指出你的部分内容中应该包含哪些html。。以及javascript的外观。。我还为SendInvite操作的参数使用了一个模型,该参数具有EmailAddress属性和Product属性。javascript应该在PostMan中反映这些属性名称,谢谢。对这很陌生,所以这真的很有帮助。最后一件事,你知道为什么我的Json返回值现在无法显示标签,而只是显示一个带有文本的空白屏幕吗?这就是答案,如果你能告诉我为什么我的标签无法呈现,这就是悬赏!听起来您的表单实际上是在提交,而不是由javascript函数处理。。既然您使用ajax发回数据,那么您是否还需要这些数据呢?我真的不知道。我在网上举了一个例子,并建立了它。我真的只有很少的web/MVC知识。。。你觉得我应该把这个拿出来?这对你来说可能没什么意义,但我 试图指出您的部分中应该包含哪些html。。以及javascript的外观。。我还为SendInvite操作的参数使用了一个模型,该参数具有EmailAddress属性和Product属性。javascript应该在文章中反映这些属性名称
<input type="button" value="Invite User" class="btn btn-primary"/>
<input type="submit" value="Invite User" class="btn btn-primary"/>
@Html.TextBoxFor(m => m.EmailAddress, new { @class = "form-control", Name="email", id = "email" })