[英]Passing data from view to controller using jquery
Im trying to pass user input from html to the controller and I am using jquery and ajax.I have followed this tutorial https://www.c-sharpcorner.com/blogs/post-the-data-to-asp-net- mvc-controller-using-jquery-ajax 。
这是 controller 代码。
public class JQueryController
{
// GET api/<controller>
public ActionResult Index ()
{
return View();
}
[HttpPost]
public JsonResult AjaxPostCall(Userinfo userdata)
{
Userinfo userinfo = new Userinfo
{
Name = userdata.Name,
EmailAdress = userdata.EmailAdress,
Phone = userdata.Phone
};
return JSON(userinfo, JsonRequestBehavior.AllowGet);
}
这是cshtml文件中的代码
@{
@Shakesphere.Controller.JQueryController.UserInfo;
@Model.Shakesphere.ViewModels.UserDataModel
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title></title>
<script type="text/javascript"
src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script>
(function CheckInput() {
var userInfo = new Object();
userInfo.Name = $('name').val();
userInfo.EmailAddress = $('email').val();
userInfo.Phone = $('phone').val();
if (UserInfo != null) {
$.ajax({
type: 'POST',
url: '/JqueryAjaxCall/AjaxPostCall',
data: JSON.stringify(UserInfo),
contenttype: "application.json; charset=utf-8",
datatype: "json",
success: function (response) {
if (response != null) {
alert("Name:" + response.Name);
}
else {
alert("Something went wrong ")
}
},
failure: function (response) {
alert(response.responseText);
},
error: function (response) {
alert(response.responseText);
}
}
)
}
}
</script>
我得到的错误是该视图和 json 在当前上下文中不存在。 我还收到一个错误,即错误 CS0117 'JQueryController' 不包含 'UserInfo' 的定义。
您的JQueryController
class 需要从基础Controller
class 继承。 将您的 class 声明更改为:
public class JQueryController : Controller
至于Userinfo
问题,我的猜测是您在 class 之上缺少using
语句。 查看您的Userinfo
,您会看到如下内容:
namespace Foo.Bar
您需要在JQueryController
class 之上添加一些using Foo.Bar
的内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.