我试图通过ajax调用一个控制器而没有太多运气.我在我的观点中创建了这个
<input type="submit" id="preview-email" value="Preview Email" />
<script type="text/javascript">
$("#preview-email").click(function () {
var p = { "email": "1223" };
$.ajax({
url: '/BusinessController/PreviewEmail',
type: "POST",
data: p,
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (data) {
alert(data);
},
error: function () {
alert("error");
}
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
我的控制器
[HttpPost]
public ActionResult PreviewEmail(string email)
{
// string d = ViewData["editor"].ToString();
string e = System.Web.HttpUtility.HtmlDecode(email);
EmailModel model = new EmailModel() { EmailBody = e };
return PartialView("_PreviewEmail", model);
}
Run Code Online (Sandbox Code Playgroud)
打开提琴手告诉我它是500错误.我做错了什么?我在我的控制器上放置了一个断点,但它没有那么远
您的网址应为:
'/商务/ PreviewEmail'
代替:
'/ BusinessController/PreviewEmail'
但是,建议URL的建议做法是使用您的路由:
Url.Action("PreviewEmail","商业")
顺便说一下,你的代码中还有另一个问题.通过将"application/json"设置为您的contentType,MVC将期望一个JSON字符串.但是,当您将JavaScript对象分配给$ .ajax()的data属性时,jQuery会将值序列化为:
电子邮件= 1223
因此,您需要通过执行以下操作为数据属性分配字符串:
var p ='{"email":"1223"}';
| 归档时间: |
|
| 查看次数: |
5750 次 |
| 最近记录: |