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"
});