MVC3 Razor动态创建表单

时间:2011-04-18 22:54:55

标签: asp.net forms asp.net-mvc-3 razor

首先,我想指出我对这个领域非常陌生^ _ ^。

总之

我正在做一个带有成绩报告系统的项目,现在我正在使用cshtml来更新usertask。

我的问题是

我目前正在尝试添加表单帖子,但它根本不起作用。

在我看来,我有一个带有usertasks(和其他数据)列表的模型。这些usertasks包含int id和string grade。

我要做的是foreach usertask用自己的提交按钮创建一个表单。 表单将包含id的隐藏字段和用于评分的文本框。

@ Html.Hidden的问题 编译器错误消息:CS1973:'System.Web.Mvc.HtmlHelper'没有名为'Hidden'的适用方法,但似乎有一个名称的扩展方法。无法动态分派扩展方法。考虑转换动态参数或调用扩展方法而不使用扩展方法语法。

我假设你不能动态地使用Html.Hidden(我在usertasks列表中使用foreach循环)。

任何人都知道如何解决这个问题?我一直在考虑创建偏见,但无法弄清楚你是否可以将参数传递给他们。或者将提交按钮重定向到控制器视图,该视图需要2个参数?

有人有任何例子吗?

寻求帮助!

提交一些我一直试图开始工作的代码。

foreach (var tskModel in tskgrpModel.usertasks)
        {
            @tskModel.name

            using (Html.BeginForm("Update", "Teacher", FormMethod.Post))
            {
                if(tskModel.isSet == true)
                {
                    @Html.Hidden("ut_id", tskModel.id )
                    @Html.TextBox("ut_grade",(string)@tskModel.grading);
                }
                else
                {
                    @Html.Hidden("ut_id", -1)
                    @Html.Hidden("ut_id", "NotSet")
                }


                
            }

        }

1 个答案:

答案 0 :(得分:7)

taskModel.id是动态变量吗?

如果是这样改变线

@Html.Hidden("ut_id", tskModel.id )

@Html.Hidden("ut_id", (int) tskModel.id )