[英]How to submit a Modal Dialog with Diactionaries ViewModel by JSon
我正在尝试提交模态对话框,并在模态消失后将结果显示在后页上。
我的ViewModel ----
public class InsertPoStep3
{
public Dictionary<int, string> FixedCategoryList { get; set; }
public string Description { get; set; }
public Dictionary<int, string> FixedDateRangeList { get; set; }
}
如果我按下Submit按钮,该视图模型将随字典一起提交给Controller ActionResult
控制器动作结果------
public ActionResult CreateCategory(InsertPoStep3 insertPoStep3)
{
// foreach (var data in formCollection)
// {
var fixedCategory = insertPoStep3.FixedCategoryList.Values;
//var description = formCollection[formCollection.Count - 1];
var category = new Category
{
//CategoryId = _db.Categories.Count() + 1,
//CategoryDescription = description,
FixedCategoryId = Convert.ToInt32(fixedCategory),
};
//_db.Categories.Add(category);
// _db.SaveChanges();
/* for(int i=1;i<formCollection.Count-1;i++)
{
_db.DateRanges.Add(new DateRange
{
CategoryId = category.CategoryId,
FixedDateRangeId = Convert.ToInt32(formCollection[i])
});
}
_db.SaveChanges();*/
return Json(insertPoStep3);
}
评论太多了...实际上我不知道如何从带有字典的viewmodel中获取数据。...
我的模态对话框JavaScript -------
<script type="text/javascript">
$(function () {
$("#InsertCategoryAnchor").click(function () {
$("#form-dialog").load("/InsertPo/CreateCategory");
$("#form-dialog").dialog({
modal: true,
height:500,
width: 700,
closeOnEscape: true,
resizable: false,
draggable: true,
title: "Insert a Category",
close: function(){
$(this).dialog("destroy");
},
buttons: {
Submit: function () {
var value = $("#myfrom").serialize();
$.ajax({
url: "/InsertPo/CreateCategory",
type: "POST",
data: value,
success: function (student) {
alert("Yes");
$(this).dialog('close');
}
});
},
Cancel: function () {
$(this).dialog("destroy");
}
}
});
});
});
</script>
实际代码将如何??? 请任何人一步一步地回答...我正在解决....代码和场景都在这里...但是它不起作用.... JSon和字典....
您太难了。 ASP.NET MVC具有内置的ajax功能。 您要做的是将主页上的按钮链接到部分视图。 如果用户单击一个按钮,将弹出一个模式,将加载您的部分视图。 在局部视图中,使用Ajax.BeginForm()处理回发到服务器的操作。 真的很简单。 我知道,因为我刚刚创建了一堆使用模式弹出窗口来插入和更新视图模型的页面。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.