Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.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 C#通过ActionLink将参数传递给控制器 问题_Javascript_C#_Jquery_Ajax_Asp.net Mvc - Fatal编程技术网

Javascript MVC C#通过ActionLink将参数传递给控制器 问题

Javascript MVC C#通过ActionLink将参数传递给控制器 问题,javascript,c#,jquery,ajax,asp.net-mvc,Javascript,C#,Jquery,Ajax,Asp.net Mvc,我的注册页面上有一个链接,需要在控制器中调用发送代码的方法。用户完成表单后,单击提交,您可以检查代码是否匹配并注册用户 我遇到的问题是,当用户单击“发送代码”链接时,我需要传递作为参数输入的电子邮件,而我似乎无法这样做 代码 以下是如何设置我的ActionLink: <%: Html.ActionLink("Send verification code", "Verify", new { id = "codeLink" })%> 邮箱的设置方式如下所示: <

我的注册页面上有一个链接,需要在控制器中调用发送代码的方法。用户完成表单后,单击提交,您可以检查代码是否匹配并注册用户

我遇到的问题是,当用户单击“发送代码”链接时,我需要传递作为参数输入的电子邮件,而我似乎无法这样做

代码
以下是如何设置我的ActionLink:

<%: Html.ActionLink("Send verification code", "Verify", new { id = "codeLink" })%>
邮箱的设置方式如下所示:

        <p>
            <%:Html.Label(Resources.UserEmailAddress)%>
            <%:Html.TextBoxFor(m => m.uEmail, new { id = "uEmail" }) %>
            <%:Html.ValidationMessageFor(m => m.uEmail) %>
        </p>

因此,我需要一种方法,让用户单击“发送代码”,它保持在同一页面上,并调用控制器中的验证方法,传递在上面输入的电子邮件。

您必须传递javascript对象

var dataToPost = { email:email};
$.ajax({

        url: $(this).attr("href"),
        data: dataToPost,
        type: "POST",
        dataType: 'json',
        cache: false
 });
另外,
contentType
是您正在发送的数据类型,因此
application/json
;默认值为application/x-www-form-urlencoded;字符集=UTF-8

如果使用
application/json
,则必须使用
json.stringify()
才能发送json
对象

var dataToPost = { email:email};
$.ajax({

        url: $(this).attr("href"),
        data: dataToPost,
        type: "POST",
        dataType: 'json',
        cache: false
 });
JSON.stringify()
将javascript对象转换为JSON文本并存储在字符串中

var dataToPost = { email:email};
$.ajax({

        url: $(this).attr("href"),
        data: JSON.stringify(dataToPost),
        type: "POST",
        dataType: 'json',
        cache: false,
        contentType: "application/json; charset=utf-8"
 });

谢谢如果他使用
应用程序/jsonrequest;charset=utf-8
他必须使用JSON.stringify对javascript对象进行字符串化。“验证”方法应接受什么参数?字符串还是对象?是否删除了
application/jsonrequest;charset=utf-8
?是的,我删除了该位。@BenClarke,看一下我的答案。我假设您的
ActionLink()
中有一个输入错误-您的使用添加了路由值,而不是html属性(您没有生成带有
的元素,如果它不是打字错误,那么您只是进行了正常重定向,没有为
电子邮件发送任何内容
parameter@StephenMuecke对不起,我不确定你的意思。你能解释一下并给我看一下吗。你应该使用简单的
点击
@StephenMuecke解释得更好,它需要是
Html.ActionLink(“发送验证码”,“验证”,空,新的{id=“codeLink”})
以便在
标记中添加
id=“codeLink”
var dataToPost = { email:email};
$.ajax({

        url: $(this).attr("href"),
        data: JSON.stringify(dataToPost),
        type: "POST",
        dataType: 'json',
        cache: false,
        contentType: "application/json; charset=utf-8"
 });