我有所有脚本的布局页面,如下所示.
<!DOCTYPE html>
<html lang="en">
<head>
<title>My Site</title>
<link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<some custom css>
<modernizr>
<script src="~/Scripts/Jquery/jquery-1.9.1.js"></script>
<script src="~/Scripts/Jquery/jquery-ui-1.10.2.js"></script>
<script src="~/Scripts/Jquery/jquery.unobtrusive-ajax.js"></script>
<script src="~/Scripts/Jquery/jquery.validate.js"></script>
<script src="~/Scripts/Jquery/jquery.validate.unobtrusive.js"></script>
<some custom scripts>
<bootstrap scripts>
<knockout scripts>
</head>
<body>
@RenderBody()
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
然后我有我的注册表格,如图所示
@model Mysite.Models.Account.Account
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
@using (Html.BeginForm(null, null, FormMethod.Post, new { id = "register" }))
{
@Html.AntiForgeryToken();
<h1>Login</h1>
@Html.ValidationSummary();
@Html.EditorFor(m => m.Name)
@Html.EditorFor(m => m.Address1)
@Html.EditorFor(m => m.Address2)
@Html.EditorFor(m => m.Phone1)
<input type="button" …Run Code Online (Sandbox Code Playgroud) asp.net-mvc jquery jquery-validate client-side-validation unobtrusive-validation
我试图使用ajax将数据从View传递到Controller Action Method,如下所示: -
我有一个用户的Membership实例,我从另一个控制器传入这个视图,使用的视图有点像这个ViewBag.MyUser = MyUser;
现在我想使用ajax将'MyUser'传递给另一个Controller表单,如下所示.
$('#Link').click(function () {
$.ajax({
url: http://localhost/Account/Process,
type: 'POST',
data: '@ViewBag.MyUser',
success: function () {
},
error: function () {
}
});
Run Code Online (Sandbox Code Playgroud)
我发布的ActionMethod如下
public ActionResult Process(MembershipUser MyUser)
{
//Do somethihng with MyUser
}
Run Code Online (Sandbox Code Playgroud)
如果我传递了ajax post,我会在内部得到错误, BeginExecuteCore(AsyncCallback callback, object state)声明"没有为此对象定义无参数构造函数." 和控制甚至没有到我的行动方法.
如果我(MembershipUser MyUser)从Action Method中删除参数,它会发布到Action方法,但随后
asp.net-mvc jquery parameter-passing asp.net-mvc-views viewbag