Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# tryupdatemodel无法通过ajaxcall工作?_C#_Asp.net Mvc 2_Jquery - Fatal编程技术网

C# tryupdatemodel无法通过ajaxcall工作?

C# tryupdatemodel无法通过ajaxcall工作?,c#,asp.net-mvc-2,jquery,C#,Asp.net Mvc 2,Jquery,我试图通过ajax调用将我的模型发布到服务器上。不幸的是,模型没有更新 <script src="../../Scripts/jquery-1.4.1.min.js" type="text/javascript"></script> <form id="ajaxForm" action=""> <div> name:<%= Html.TextBoxFor(model => model.number) %>

我试图通过ajax调用将我的模型发布到服务器上。不幸的是,模型没有更新

 <script src="../../Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>

<form id="ajaxForm" action="">
    <div>
        name:<%= Html.TextBoxFor(model => model.number) %>
    </div>
    <%--hidden vars--%>
    <input type="hidden" id="Hidden1" />
    <%= Html.Hidden("myModel", Model.Serialize())%>
</form>
<button id="submitbutton">
    save
</button>

<script type="text/javascript">

    $(document).ready(function () {
        $("#submitbutton").click(function () {
            var FormData = $("#ajaxForm").serialize();
            $.ajax({
                type: 'POST',
                url: "/Home/SaveAjax",
                data: { inputdata: $("#myModel").val() },
                datatype: 'JSON'
            });
        })
    });

</script>




    [HttpPost]
    public JsonResult SaveAjax(string inputdata)
    {
        MyModel myModel = (inputdata.DeSerialize() ?? TempData["myModel"] ?? new MyModel()) as MyModel;

        //TryUpdateModel does not update my model??
        TryUpdateModel(myModel);

        TempData["myModel"] = myModel;

        return Json(new { resultaat = "finished" });
    }


 [Serializable]
public class MyModel
{
    //[Required]
    public string name { get; set; }
    public bool flag { get; set; }
    public int number { get; set; }
    public string address { get; set; }
    public string abn { get; set; }
    public string postalcode { get; set; }
}


public static class Extensions
{
    public static string Serialize(this object myobject)
    {
        var sw = new StringWriter();
        var formatter = new LosFormatter();
        formatter.Serialize(sw, myobject);
        return sw.ToString();
    }

    public static object DeSerialize(this string mystring)
    {
        if (string.IsNullOrEmpty(mystring))
            return null;
        var formatter = new LosFormatter();
        MyModel mym = (MyModel)formatter.Deserialize(mystring);
        return mym;
    }
}

名称:型号.编号)%>
拯救
$(文档).ready(函数(){
$(“#提交按钮”)。单击(函数(){
var FormData=$(“#ajaxForm”).serialize();
$.ajax({
键入:“POST”,
url:“/Home/SaveAjax”,
数据:{inputdata:$(“#myModel”).val()},
数据类型:“JSON”
});
})
});
[HttpPost]
公共JsonResult SaveAjax(字符串输入数据)
{
MyModel MyModel=(inputdata.DeSerialize()?TempData[“MyModel”]?new MyModel())作为MyModel;
//TryUpdateModel不更新我的模型??
TryUpdateModel(myModel);
TempData[“myModel”]=myModel;
返回Json(新的{resultaat=“finished”});
}
[可序列化]
公共类MyModel
{
//[必需]
公共字符串名称{get;set;}
公共布尔标志{get;set;}
公共整数{get;set;}
公共字符串地址{get;set;}
公共字符串abn{get;set;}
公共字符串postalcode{get;set;}
}
公共静态类扩展
{
公共静态字符串序列化(此对象myobject)
{
var sw=新的StringWriter();
var formatter=新的LosFormatter();
序列化(sw,myobject);
返回sw.ToString();
}
公共静态对象反序列化(此字符串mystring)
{
if(string.IsNullOrEmpty(mystring))
返回null;
var formatter=新的LosFormatter();
MyModel mym=(MyModel)格式化程序。反序列化(mystring);
返回mym;
}
}

在AJAX请求中,您只发送隐藏字段的值:

data: { inputdata: $("#myModel").val() }
因此,您不能期望在服务器上获得此隐藏字段以外的任何其他值。如果要发布整个表单内容,请使用在代码中声明但未使用的
formData
变量:

$('#submitbutton').click(function () {
    var formData = $('#ajaxForm').serialize();
    $.ajax({
        type: 'POST',
        url: '/Home/SaveAjax',
        data: formData,
        dataType: 'json'
    });
});

虽然我把一切都看作是发送完整的表格…我只是缺少数据类型:JSON。。。。通过添加该行。。。工作!