我正在生成一个像这样的表单列表
foreach (projects p in projects)
{
ViewBag.ProjectList += @"<div class='itemdiv memberdiv'>
@Using(Html.BeginForm()) {
并使用@html.raw传递给html(ViewBag.ProjectList) 但问题是@using是作为一个字符串传递的,我不能在它之外做 控制器Viewbag字符串,因为它无法识别来自控制器的@using。
如何从控制器中生成这样的提交表单列表?
答案 0 :(得分:1)
由于您没有向表单添加任何其他属性,因此您可以写出html表单标记,而不是将其包装在后端代码中。
foreach (projects p in projects)
{
ViewBag.ProjectList += @"<div class='itemdiv memberdiv'>
<form method='POST'>...</form>
答案 1 :(得分:0)
您必须直接构建表单标记。您不能使用MVC Html助手,因为这是必须执行的c#代码。
答案 2 :(得分: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>
}