首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >html.textbox命名asp.net mvc

html.textbox命名asp.net mvc
EN

Stack Overflow用户
提问于 2013-02-01 07:02:18
回答 1查看 648关注 0票数 1

我尝试遍历数据库并为每条记录创建一个文本框。在我尝试使用控制器中的信息之前,一切都很正常。如何将此信息传递回控制器?

代码语言:javascript
复制
<% Using (Html.BeginForm("NewEnvCd", "Config", Nothing, FormMethod.Post))%>

    <%: Html.Hidden("Environment", Model.NewEnvironment)%>
    <div class="box" style="margin-top:30px;width:800px;">
    <h4 >Add New Environment Code</h4>
        <div>
        <div>
        <div style="float:left; text-decoration:underline;">Environment Code</div><div style="float:right;width:400px;text-decoration:underline;">Parameter Values</div>
        </div>
        <br /><br />
        <% Dim i As Int32 = 0 %>
        <% For Each cfg In Model.ParameterValues%>

            <div style="margin-bottom:5px;">

                <div style="float:left;">
                    <%: Html.Hidden("newEnvironment", Model.NewEnvironment)%>
                    <%: Html.Hidden("cfg[" & i & "].Name", cfg.Name) %>
                    <%: Html.Hidden("cfg[" & i & "].EnvCd", cfg.EnvCd) %>
                    <%: cfg.Name%>

                </div>
                <div style="float:right;">
                    <%: Html.TextBox("cfg[" & i & "]value", If(Not cfg.Value Is Nothing, cfg.Value, ""), New With {.style = "width:400px;"})%>
                </div>
                <div class="clear"></div>
            </div>
            <% i += 1 %>

        <% Next %>

        <input type="submit" value="Save" />
        <%: Html.ActionLink("Return to List", "Index", "Config") %>
        </div>
        </div>
<% End Using %>

控制器看起来像这样:

代码语言:javascript
复制
    Function NewEnvCd(ByVal newEnvironment As String, Optional ByVal copyEnvironment As String = "") As ActionResult
        Dim model As NewEnvCdModel
        model = New NewEnvCdModel(newEnvironment, copyEnvironment)
        Return View(model)
    End Function

    <HttpPost()>
    Function NewEnvCd(ByVal newEnvironment As String, ByVal name As String, ByVal value As String, ByVal cfg As IList(Of ConfigData.tblTT_Configuration))

        If (cfg.Count() = 0 OrElse String.IsNullOrWhiteSpace(name)) Then
            Return RedirectToAction("Index")
        End If

        For Each c In cfg
            Repository.CreateEnvironment(If(c.EnvCd, newEnvironment), c.Name, c.Value)
        Next
        Return RedirectToAction("index")
    End Function

我可能一直不清楚我的问题,但我正在寻找的答案与使用每个cfg记录的名称(即。cfg.Name、cfg.Value、cfg.EnvCd)。我试图单独传递cfg的参数(ByVal名称作为字符串,ByVal值作为字符串),而我应该将cfg作为列表或可查询(ByVal cfg作为IList(Of ConfigData.tblTT_Configuration))传递,然后从控制器中提取值。谢谢你们的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-01 15:25:56

假设您的ConfigData.tblTT_Configuration模型具有名为NameEnvCdValue的属性,所有您需要做的就是修改TextBox名称,以便在绑定到列表时遵守naming convention

代码语言:javascript
复制
<%: Html.TextBox(
    "cfg[" & i & "].Value", 
    If(Not cfg.Value Is Nothing, cfg.Value, ""), 
    New With {.style = "width:400px;"}
) %>

请注意,您在值之前丢失了一个点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14636748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档