2013-10-29 52 views
0
表格

我生成一个列表的形式这样生成与ViewBag

foreach (projects p in projects) 
       { 
        ViewBag.ProjectList += @"<div class='itemdiv memberdiv'> 

                 @Using(Html.BeginForm()) { 

及其在传递与@ html.raw(ViewBag.ProjectList) 的HTML,但问题是,@使用正在作为字符串传递,我无法在 控制器Viewbag字符串之外执行此操作,因为它无法识别控制器的@using。

如何从控制器内生成这样的提交表单列表?

+0

为什么你会做这样的事情? –

回答

1

由于您并未向表单添加任何其他属性,因此您可能会写出html表单标记而不是将其包装在后端代码中。

foreach (projects p in projects) 
{ 
    ViewBag.ProjectList += @"<div class='itemdiv memberdiv'> 
           <form method='POST'>...</form> 
0

您必须直接构建表单标签。您不能使用MVC Html帮助程序,因为那是必须执行的c#代码。

0

我不会使用viewbag,我会使用模型。然后遍历模型中的每个项目。由于您在页面上放置多个表单,您需要为每个表单指定一个操作,否则您的提交按钮将全部转到相同的操作。

型号

public class Projects 
{ 
    public string Action {get; set;} 
    public string Controller {get; set;} 
    public string FormStuff {get; set;} 
} 

查看

@model Projects 

    @foreach (projects p in Model) 
    { 
     <div class='itemdiv memberdiv'> 
     @Using(Html.BeginForm(p.Action, p.Controller)) 
     { 
      @p.FormStuff 
     } 
     </div> 
    }