Я хочу отправить данные через Jquery Ajax в ASP.NET MVCмой JQuery Ajax не работает в ASP.NET MVC
Но, когда функция создания была вызвана Раздел Error Excuted
Здесь My Java Script
function create() {
$.ajax({
url: "@Url.Action(actionName:"Create",controllerName:"Tag",routeValues:new { Area="Admin"})",
contentType: "application/json",
type: "POST",
dataType: "json",
data: $("#myForm").serialize(),
success: function (response) {
eval(response.Script);
}, error: function() {
alert("Error");
}
});
Вот мой Действие Метод
[ValidateAntiForgeryToken,HttpPost, AjaxOnly]
public ActionResult Create(Tag tag)
{
JsonData data = new JsonData();
if (ModelState.IsValid)
{
if (TagOperation.Where(x => x.Text == tag.Text) != null)
{
try
{
TagOperation.Add(tag);
data.Script = MessageBox.Show("Message", MessageType.Success).Script;
return RedirectToAction(actionName: "Index", controllerName: "Tag", routeValues: new { Area = "Admin" });
}
catch (Exception ex)
{
data.Script = MessageBox.Show("Message", MessageType.Error).Script;
return Json(data);
}
}
}
data.Script = MessageBox.Show(ModelState.GetErrors(), MessageType.Warning).Script;
return Json(data);
}
И вот я считаю, что Отправить Данные Via Jquery Ajax
@using (Html.BeginForm("Create", "Tag", FormMethod.Post, new { id = "myForm" })){
@Html.AntiForgeryToken()
<div class="form-horizontal">
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(model => model.Text, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Text, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Text, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input onclick="create();" type="button" value="Save" class="btn btn-default" />
</div>
</div>
</div>
}
Начать удаление 'contentType: "application/json", 'И если это не работает, объясните, какую ошибку вы получаете. У вас несколько ошибок. Ajax-вызовы не перенаправляются, поэтому 'return RedirectToAction()' бессмысленно. 'MessageBox.Show()' является WinForms, а не MVC –
I Remove contentType, но он не работает, а я получаю код состояния 500, а заголовок ошибки - это поле формы анти-подделки ... I Put ValidateAntiForgeryToken And Html.AntiForgery In My Form.And MessageBox - это мой собственный класс для генерации JavaScript. – HashemMaya
'500 (Internal Server Error)' означает, что ваш код контроллера выбрасывается и исключается. И что вы имеете в виду, что вы положили 'ValidateAntiForgeryToken' в форму? - это атрибут, применяемый к методу контроллера. –