我想从我的视图传递此数据以通过控制器保存它。
我的观点
<div>
<b>Title</b> <br />
<input type="text" id="title" /><br />
<b>Description</b> <br />
<input type="text" id="desc" /><br />
</div>
<button id="saveDetails">Save</button>
我的js
$(document).ready(function () {
$(document).on("click", "#saveDetails", saveDetails);
$("#detailsPanel").hide();
});
var saveDetails = function () {
var dataPost = {
"Title": $("#title").val(),
"Description": $("#desc").val(),
"AssetId": $("#assetId").val()
}
$.ajax({
type: "POST",
async: false,
contentType: "application/json",
data: JSON.stringify(dataPost),
url: "/Media/Save"
}).done(function (state) {
if (state.Saved == true) {
displayStatusMessage("Saved Successfully");
$("#detailsPanel").hide();
mediaPlayer.initFunction("videoDisplayPane", state.StreamingUrl);
} else {
displayStatusMessage("Save Failed");
}
});
}
我的控制器
[HttpPost]
public JsonResult Save(MediaElement mediaelement)
{
try
{
mediaelement.UserId = User.Identity.Name;
mediaelement.FileUrl = GetStreamingUrl(mediaelement.AssetId);
db.MediaElements.Add(mediaelement);
db.SaveChanges();
return Json(new { Saved = true, StreamingUrl = mediaelement.FileUrl });
}
catch (Exception ex)
{
return Json(new { Saved = false });
}
}
它已经将数据发布到我的控制器(我通过Fiddler看到它),但它总是返回Json(new {Saved = false})。
我的代码有什么问题?需要帮助,请...
[已结案]
好的,我在我的数据库中发现,我有一个不是null的coloum UploadDate。我已经用这个 - &gt;声明我的数据库上的默认值GETDATE()。但是当我从控制器插入数据时它不起作用。所以我通过Controller手动添加UploadDate的值。然后它的作品:)
谢谢大家:)
答案 0 :(得分:0)
我认为问题在于MediaElement模型绑定... 但在此之前,请查看以下内容:
$(document).ready(function () { $(document).on("click", "#saveDetails", saveDetails); $("#detailsPanel").hide(); }); var saveDetails = function () { var dataPost = { Title: $("#title").val(), Description: $("#desc").val(), AssetId: $("#assetId").val() }; $.ajax({ type: "POST", async: false, data: dataPost, url: "/Media/Save" }).done(function (state) { if (state.Saved == true) { displayStatusMessage("Saved Successfully"); $("#detailsPanel").hide(); mediaPlayer.initFunction("videoDisplayPane", state.StreamingUrl); } else { displayStatusMessage("Saved Failed"); } }); }