将json对象中的值从视图传递到模型中的变量

时间:2017-05-31 13:51:31

标签: json asp.net-mvc asp.net-mvc-4 model-view-controller

我是MVC的新手,我正在尝试将json对象的值从视图传递到模型变量。我怎么能这样做。

模型

public guid SID{ get; set; }

视图

@model StudentSchoolActivity.ViewModels.ApplicationViewModel


 success: function(result) {
                if (result == 1) {
                  Model.SID= result.SID;
 }

当我调试代码时,它说Model.SID = result.SID。

的未被引用的引用错误

我需要将值存储在模型中,以便我可以在控制器上使用该值。

2 个答案:

答案 0 :(得分:0)

要使用控制器中的值,您必须将其作为请求的一部分发回。您显示的代码无效,因为Model.SID是服务器端构造(Razor),但JS代码(result.SID)在客户端上运行。

如果您使用POST请求,则可以将值绑定到隐藏输入。 (我在这个例子中使用jQuery来操作DOM):

@Html.HiddenFor(m => m.SID)

/* ... */
success: function(result) {
    if (result == 1) {
        $('#SID').val(result.SID);
    }
}

如果您使用GET请求,则可以将值格式化为匹配的URL参数。

var link = '@Url.Action("Details", "MyController", new { sid = "__0__" })';
if (result == 1) {
    link = link.replace('__0__', result.SID);
}

答案 1 :(得分:0)

Rohil Patel,我们可以通过使用jquery ajax轻松完成此操作,下面是示例:

查看代码:

$("#AnybuttonId").click(function () {
    var studentdata = {
        Sid: $("#txtsid").val(),
        studentname: $("#txtsname").val()
    };
    $.ajax({
        type: "POST",
        url: "/Home/savestudent",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        data: JSON.stringify(studentdata),
        success: function (result) {

           //some code
        },
        error: function (xhr, textStatus, errorThrown) {
            //some code
        }
    }); 
});

控制器代码:

[HttpPost]

    public ActionResult savestudent(Student studentdata)
    {

       //action logic like save will be here


}

希望它易于理解和帮助,请让我知道您的想法或反馈

由于

KARTHIK