0

我正在生成这样的表单列表

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

                                                      @Using(Html.BeginForm()) {

并将其通过@html.raw(ViewBag.ProjectList) 传递到html,但问题是@using 作为字符串传递,我不能在控制器Viewbag 字符串之外执行它,因为它无法识别@从控制器使用。

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

4

3 回答 3

1

由于您没有向表单添加任何其他属性,因此您可能可以通过写出 html 表单标签而不是将其包装在后端代码中来解决问题。

foreach (projects p in projects)
{
    ViewBag.ProjectList += @"<div class='itemdiv memberdiv'>
                                 <form method='POST'>...</form>
于 2013-10-29T19:21:22.503 回答
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>
    }
于 2013-10-29T19:50:12.210 回答
0

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

于 2013-10-29T19:20:13.413 回答