是否可以通过我的jQuery的ajax调用传递整个模型? 要知道,如果我当时设置了一个变量,我只能使它工作。
代码显示我通过ajax调用传递 iVideo_ID 。 Video对象有很多其他字段。因此,我可以传递整个现有对象(视频模型)而不是编写所有属性吗?
$.ajax({
type: "POST", //HTTP POST Method
url: "/Video/UpdateComment", // Controller/View
data: { //Passing data
iVideo_ID: '@(Model.Video.iVideo_ID)'
}
});
我已尝试过这个,但它只返回一个null的模型:
$.ajax({
type: "POST", //HTTP POST Method
url: "/Video/NyMetode", // Controller/View
data: '@(Model)'
});
那我怎么能通过整个模型呢?有可能吗?
编辑: 我的视图模型我尝试通过:
public class CommentViewModel
{
public List<Comments> Comments { get; set; }
public List<Tasks> Tasks { get; set; }
public Videos Video { get; set; }
public List<VideoTaskScores> VideoTaskScores { get; set; }
}
答案 0 :(得分:0)
实际上你可以做到这一点
稍微改变一下以获得更多简化I.e
<div class="container">
<h2>Student Information</h2>
@using (Html.BeginForm("insert", "Menu", FormMethod.Post, new { id="target"}))
{
<label>First Name:</label>
<input data-val="true" data-val-required="First Name field is required." type="text" class="form-control" name="firstname" id="firstname" />
<span class="field-validation-valid" data-valmsg-for="firstname" data-valmsg-replace="true"></span>
<button type="submit" class="btn btn-success" >Insert</button>
}
</div>
然后在ajax数据
<script>
var jsonData= @html.raw(json.encode(Model));
只需确保在您的actionresult中param名称也是modelName即
data: modelName : jsonData,
答案 1 :(得分:0)
在cshmtl页面中尝试这样的事情:
<script type="text/javascript">
function GetModel() {
return @Html.Raw(Json.Encode(Model));
}
</script>
这就是你如何发送整个模型:
var ModelData = GetModel();
$.ajax(
{
type: "POST", //HTTP POST Method
url: "/Video/UpdateComment", // Controller/View
data: { ModelName: GetModel(); }
});
答案 2 :(得分:0)
您可以在表单中嵌入模型属性,然后序列化表单并将其传递给您的ajax调用。
$.ajax({
url: "/Controller/ActionName",
type: 'POST',
data: $('#MyFormName').serialize()
})
.done(function (response) {
alert(response.Message);
}
}).fail(function () {
alert(Something went wrong);
});
在操作中,您可以直接访问模型
public ActionResult ActionName(MyModel modelObj)
{}
答案 3 :(得分:0)
您可以使用Json.stringify(model)
但在实现之前,您应该使用jQuery获取模型类的列表以及它们的最后状态。
你能试试吗
// you can get your model data from view by jQuery
// your model has list objects so you should get these from view and add these into model
var model = {...}; // your object corresponds model object
$.ajax({
type: "POST", //HTTP POST Method
url: "/Video/UpdateComment", // Controller/Action
data: Json.stringify(model),
contentType: "application/json"
}).done(function (res) {
// after done insert your code here
});;