c# – 在运行时asp.net mvc创建动态视图
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 在运行时asp.net mvc创建动态视图,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1997字,纯文字阅读大概需要3分钟。
内容图文
![c# – 在运行时asp.net mvc创建动态视图](/upload/InfoBanner/zyjiaocheng/754/02546a4297004ba88387ef4d89230bb8.jpg)
我是mvc的新手,已经开始学习asp.net mvc 5和django了
我想创建一个用户可以在运行时创建新视图的应用程序.因此,假设我在Web应用程序中创建了一个功能,供用户添加新页面,用于填写表单,例如标题可能是文本,或者要在视图上显示的字段,以及用户保存时info保存到数据库并创建一个新视图.
我的问题是:
>你可以在运行时创建动态视图吗?
>如何创建正确的URL以路由到新页面?
>如果前两个是可能的,您可以使用模型或viewModel然后显示该页面的数据库中的内容吗?
如果可以做到这一点的任何建议将不胜感激.谢谢
解决方法:
我认为您需要根据用户需求创建一个在db中保存用户配置的页面.
从我的结束,我建议采取以下方法来做到这一点.
>无论你从数据库得到什么数据,返回如下所示.
>在控制器中创建一个Action,并将这些数据分配到一个数据表/列表中.
public ActionResult LoadContent()
{
dynamic expando = new ExpandoObject();
var model = expando as IDictionary<string, object>;
/*Let say user insert the detail of employee registration form. Make the
database call and get the distinct detail of particular inserted form by Id
or whatever. As an example below datatable contains the data that you fetch
during database call.*/
DataTable objListResult =
HeaderViewActionHelper.GetFinalResultToRenderInGenericList(id);
if (objListResult != null && objListResult.Rows.Count > 0)
{
foreach (DataRow row in objListResult.Rows)
{
model.Add(row["DisplayName"].ToString(),
row["DisplayNameValue"].ToString());
/*If you want to handle the datatype of each field than you can bifurcation
the type here using If..else or switch..case. For that you need to return
another column in your result from database i.e. DataType coloumn. Add in
your model as, model.Add(row["DisplayName"].ToString(),
row["DisplayNameValue"].ToString(), row["DataType"].ToString());*/
}
}
/* return the model in view. */
return View(model);
}
>在视图中,您可以通过模态循环并渲染细节.
@model dynamic
@using (Html.BeginForm("SubmitActionName", "ControllerName")
{
<div class="table-responsive">
<table>
@if (Model != null)
{
foreach (var row in Model)
{
}
}
</table>
</div>
}
有关详细信息,请通过this链接.
内容总结
以上是互联网集市为您收集整理的c# – 在运行时asp.net mvc创建动态视图全部内容,希望文章能够帮你解决c# – 在运行时asp.net mvc创建动态视图所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。