У меня есть приложение asp.net mvc 5, но я не могу получить этот довольно простой скрипт для работы. Я новичок в этом MVC (я парень WebForms). В основном jQuery не прикрепляет событие .click() к кнопке для отправки данных базовому контроллеру.jquery click method не подключен к кнопке
Может ли кто-нибудь определить, что я делаю неправильно?
The View (HelloWorld/Index.cshtml):
@model HelloWorld.Models.HelloWorldModel
<!DOCTYPE html>
<html>
<head>
<title>Hello World</title>
<script src="~/Scripts/jquery-2.1.3.min.js"></script>
</head>
<body>
<div>
@using (Html.BeginForm("Welcome","HelloWorld",FormMethod.Post, new {id = "myhelloform"})){
<span>Name:</span>
@Html.TextBoxFor(model=> model.Name)
<button id="btnPost" type="button">Post</button>
}
</div>
<script>
var testform = function() {
var init = function() {
$("#btnPost").on("click", function() {
alert("anybody there??");
submitForm();
});
};
var submitForm = function() {
$.hit({
url: "@Url.Action("Welcome", "HelloWorld")",
data: $("#myhelloform").serializeArray(),
success: function (response) {
alert(response.Message);
}
});
};
return {
Init: init
};
};
</script>
</body>
</html>
</html>
контроллер (контроллеры/HelloWorldController.cs):
using System.Web.Mvc;
namespace HelloWorld.Controllers
{
public class HelloWorldController : Controller
{
public ActionResult Index()
{
return View();
}
[HttpPost]
public JsonResult Welcome()
{
return Json("test");
}
}
}
модели (модели/HelloWorldModel.cs)
namespace HelloWorld.Models
{
public class HelloWorldModel
{
public string Name { get; set; }
}
}
Похоже, ваш Функция init никогда не вызывается ... Добавьте предупреждение в начало этой функции для проверки. –
Пробовал, что ... нет предупреждения :( – Sha
https://dotnetfiddle.net/HCdFXM Работает без тестовой формы и инициализации – Tuco