在asp.net mvc3中动态创建模型的Web Grid

时间:2015-05-29 09:32:23

标签: c# asp.net asp.net-mvc asp.net-mvc-3 webgrid

我正在建立一个ASP.Net mvc3网站,该网站包含一系列建立在不同模型之上的表格。一旦用户填写了每个表单,就会显示“确认”页面,该页面将向用户显示填写的表单字段以及网格格式的数据。当模型不断更改每个表单时,我在显示确认视图时遇到困难。 以下是我的Controller方法确认:

public ActionResult Confirm(string ReqType)
        {
            var result = new List<dynamic>();
            if (ReqType == "AcctDesc")
            {
                DbContext.AcctDescDbContext objAcctDescDbContext = new DbContext.AcctDescDbContext();
                Models.AccountDesc objAcctDesc = objAcctDescDbContext.GetLatestRecord();
                ViewData["AcctDesc"] = objAcctDesc;
                ViewBag.ObjectModel = objAcctDesc;


                    var obj = (IDictionary<string, object>)new ExpandoObject();

                    obj.Add("Req_Name",objAcctDesc.Req_Name);
                    obj.Add("Req_Date",objAcctDesc.Req_Date);
                    obj.Add("ApprovalGroup",objAcctDesc.ApprovalGroup);
                    obj.Add("Account",objAcctDesc.AC_proposed);
                    obj.Add("Reason",objAcctDesc.AC_definition);
                    obj.Add("Language",objAcctDesc.AC_language);
                    obj.Add("CurrentShortText", objAcctDesc.AC_Currentshorttext);
                    obj.Add("CurrentLongText", objAcctDesc.AC_CurrentLongtext);
                    obj.Add("NewShortText", objAcctDesc.AC_Newshorttext);
                    obj.Add("NewLongText", objAcctDesc.AC_Newlongtext);

                    result.Add(obj);
                }
            ViewBag.result = result;
            return View();

            }

以下是确认视图:

@{
    ViewBag.Title = "Confirm";
    Layout = "~/Views/Shared/_LayoutMasterDataForms.cshtml";
}

<div>

@{
    var grid = new WebGrid(ViewBag.result);  

    }

    @using (Html.BeginForm())
{   
    <div id="grid"> 
        @grid.GetHtml() 
    </div> 
}
</div>

问题是网格没有在确认页面中呈现空白Html即将出现,这里有什么问题?请帮忙。

1 个答案:

答案 0 :(得分:0)

我做了代码的精简版以生成WebGrid,就我所见,它工作得很好。这是输出和我的代码:https://dotnetfiddle.net/Zq0lHy。另外,我建议使用键入的List,而不是在这种情况下使用dynamic,对ViewDataViewBag使用Plugin::routes();