javascript - ASP.Net MVC 模型绑定(bind)到 javascript

标签 javascript asp.net asp.net-mvc asp.net-mvc-4

问题非常简单:我使用 @Html.EditorForModel() 为我的模型生成字段。然后用户填写所有这些字段,我想通过 AJAX 发送此字段,因为我应该在不重新加载页面的情况下执行多个服务器的服务。

我搜索了几种方法,但似乎没有标准的方法来做这些事情。我的意思是我在客户端没有代表模型的对象。我发现一个单独的库调用 JSModel ( link ),但它似乎不起作用。我现在的代码是:

@model Student

<script src="@Url.Content("~/scripts/jquery-1.12.2.min.js")" type="text/javascript" async="async"></script>
<script src="@Url.Content("~/scripts/Requester.js")" type="text/javascript" async="async"></script>
<script src="@Url.Content("~/scripts/jsmodel.js")" type="text/javascript"></script>

<script type="text/javascript">
    var requester = new Requester(@Html.Raw(Json.Encode(new Student())));

    function SendSignupRequest() {
        requester.SendSignupRequest();
    }
</script>

<h2>Student</h2>
<div>
    @Html.EditorForModel()
</div>
<input type="button" value="Send" onclick="SendSignupRequest()"/>

请求者.js:

function Requester(rawModel) {
    this.modelObj = new JSModel(rawModel);

    this.SendSignupRequest = function() {
        var model = modelObj.refresh();
        var val = model.prop("Name");
        alert(val);
    }
}

有什么简单的方法可以在 JSON 中序列化模型对象并将其发送到服务器,而无需手动构造具有数百万个 document.getElementById 的对象?

最佳答案

查看

 @using (Html.BeginForm("action", "controller", FormMethod.Post, new { @class = "form-horizontal form-compact ", role = "form", id = "form1" }))
    {

    }  

Java 脚本

var formdata = $("#form1").serializeArray();

$.ajax({
                url: url,
                type: 'POST',
                data: formdata,
                success: function (data) {
}

Controller

public ActionResult action(Model model)
{
//access data here 
}

关于javascript - ASP.Net MVC 模型绑定(bind)到 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36262484/

相关文章:

c# - 如何在新窗口中打开图像或pdf文件?

asp.net-mvc - allowDefinition ='MachineToApplication' 错误设置 <MvcBuildViews>true</MvcBuildViews>

javascript - 如何将表单数据从 jQuery 获取到 ASP.NET Controller ?

javascript - Promise.all([...]) 填充对象

javascript - Angular 应用找不到 ng-template tpl.html 文件

asp.net - 如何获取 System.Web.Http.Tracing.dll?

javascript - 如何从 asp.net 中的代码隐藏调用 Javascript 警报

asp.net-mvc - 如何 : PageView and Controllers inheritance in ASP. NET MVC

javascript - 在悬停jquery上从右向左滑动div

javascript - 带按钮的react-native renderRow : push rowData to button-function