asp.net-mvc-3 – WebGrid列中的MVC3 Html.BeginForm?
发布时间:2020-12-16 06:59:02 所属栏目:asp.Net 来源:网络整理
导读:我今晚早些时候有一个疯狂的想法,并且完成了3/4的方法并且遇到了一个奇怪的问题.我想在控制器上自动生成所有方法的索引,而不是返回ActionResult,以及作为一个简单的形式,每个人总结他们的有效数据..通过反思看起来像一个非常简单的事情: Quickie ViewModel
我今晚早些时候有一个疯狂的想法,并且完成了3/4的方法并且遇到了一个奇怪的问题.我想在控制器上自动生成所有方法的索引,而不是返回ActionResult,以及作为一个简单的形式,每个人总结他们的有效数据..通过反思看起来像一个非常简单的事情:
Quickie ViewModel用于保存每个反射动作: public class ReflectedAction { public ReflectedAction(MethodInfo methodInfo,string controllerName) { this.ActionName = methodInfo.Name; this.ControllerName = controllerName; this.Parameters = methodInfo.GetParameters().Select(p => p.Name); } public string ControllerName { get; set; } public string ActionName { get; set; } public IEnumerable<string> Parameters { get; set; } } 反映当前控制器上所有操作的操作: public virtual ActionResult AutoIndex() { Type controllerType = this.ControllerContext.Controller.GetType(); string controllerName = controllerType.Name.Replace("Controller",string.Empty); var methods = this.ControllerContext.Controller.GetType().GetMethods().Where( m => m.ReturnType.Name.Contains("ActionResult")); var model = methods.Select(m => new ReflectedAction(m,controllerName)); return View(model); } 在视图中,我只想使用一个简单的WebGrid将每个动作渲染为一行,第一列是动作的名称,第二列是迷你形式,能够填写任何字段该动作有(我尝试将其作为帮助程序,或以网格格式内联,后者包含在此处: @using TfsMvc.Controllers @model IEnumerable<TestController.ReflectedAction> @{ ViewBag.Title = "AutoIndex"; Layout = "~/Views/Shared/_Layout.cshtml"; } <h2>AutoIndex</h2> @{ var grid = new WebGrid( source: Model,ajaxUpdateContainerId: "grid",defaultSort: "ActionName",canPage: false); } <div id="grid"> @grid.GetHtml( tableStyle: "grid",headerStyle: "head",alternatingRowStyle: "alt",columns: grid.Columns( grid.Column("ActionName"),grid.Column(format: (action) => { using (Html.BeginForm((string)action.ActionName,(string)action.ControllerName,FormMethod.Get)) { string htmlString = string.Empty; foreach (string parameter in action.Parameters) { htmlString = "<span>" + Html.Label(parameter) + Html.TextBox(parameter) + "</span>"; } htmlString += "<input type="submit" />"; return new HtmlString(htmlString); } })) ) </div> 网格似乎正确呈现,但奇怪的是,所有表单html标记都在网格外部呈现,但控件在网格内呈现: <div id="grid"> <form action="/Test/CloneTestPlan" method="get"></form> <form action="/Test/ConfigureTestPlan" method="get"></form> <form action="/Test/EnvConfig" method="get"></form> <form action="/Test/FixTestLink" method="get"></form> <!-- ton of other actions snipped--> <table class="grid"> <thead> <tr class="head"><th scope="col"><a href="#" onclick="$('#grid').load('/Test/SecretIndex?sort=ActionName&sortdir=DESC&__=634581349851993336 #grid');">ActionName</a></th><th scope="col"></th></tr> </thead> <tbody> <tr><td>CloneTestPlan</td><td><span><label for="subid">subid</label><input id="subid" name="subid" type="text" value="" /></span><input type="submit" /></td></tr> <tr class="alt"><td>ConfigureTestPlan</td><td><span><label for="apply">apply</label><input id="apply" name="apply" type="text" value="" /></span><input type="submit" /></td></tr> <tr><td>EnvConfig</td><td><span><label for="create">create</label><input id="create" name="create" type="text" value="" /></span><input type="submit" /></td></tr> <tr class="alt"><td>FixTestLink</td><td><span><label for="commit">commit</label><input id="commit" name="commit" type="text" value="" /></span><input type="submit" /></td></tr> <!-- ton of other actions snipped--> </tbody></table> </div> 如您所见,标签在表格之外呈现!知道我在这里做错了吗?或者你可以不在Webgrid中做BeginForm吗?制作一堆个人表格的更好方法是什么? 提前致谢! 解决方法
尝试渲染< form>你自己没有使用帮手.
在吐出内容之前看起来lambdas在帮助器内执行,这导致BeginForm立即呈现为输出. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-core – 如何在ASP.NET 5中使用“旧”依赖项
- ASP.NET网站管理系统退出 清除浏览器缓存,Session的代码
- asp.net-mvc – 如何在.NET MVC中防止多个表单提交而不使用
- asp.net-mvc – 在使用ORM解决方案的ASP.NET MVC中工作时,我
- asp.net – 304未修改静态文件
- asp.net-mvc – 在ASP.NET Intranet MVC应用程序中维护经过
- 单元在ASP.NET中测试登录
- asp.net – ASPX需要一个免费的datepicker
- 哪些ASP.NET生命周期事件在HttpApplication.Error之后发生?
- asp.net-mvc – asp.net中的奇怪图像生成错误
推荐文章
站长推荐
- asp.net-mvc-3 – 将值传递给控制器??时,ASP.NET
- asp.net-mvc – ASP.Net MVC:控制器中的访问验证
- asp.net中利用Jquery+Ajax+Json实现无刷新分页的
- asp.net – 从ASP .Net下载文件时,文本文件会附加
- 如何在ASP.NET 4.0应用程序的IIS管理器中添加用户
- ASP.NET MVC4 WebApi路由中包含文件名
- asp.net-mvc – 同步ASP.NET MVC回发回调的问题
- asp.net – On-Session-expire-event?
- asp.net – 如何设置显示内联的Div元素的固定宽度
- .net – MVC 4中MVC 4中强类型ActionLink的语法是
热点阅读