我是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。
的未被引用的引用错误我需要将值存储在模型中,以便我可以在控制器上使用该值。
答案 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