asp.net-mvc - ASP.NET MVC 表单处理未知数量的输入

标签 asp.net-mvc forms viewmodel

我正在构建一个内部页面,允许受信任的用户通过表单手动更改参数设置。此设置的输入是一个设置参数列表(大小未知),每个参数都有一个特定的值列表。然后,用户可以为所有参数或部分参数选择一个值。

我试图用我当前的 View 模型来说明这一点

    public class SetupModel
    {
        public List<SetupParameter> Parameters { get; set; }
    }

    public class SetupParameter
    {
        public string ParameterName { get; set; }

        // list with text=paramvalue, value=paramvalueid 
        public SelectList ParameterValueList { get; set; } 
        // id of the selected parametervalue if any
        public int? SelectedParameterValueID { get; set; }
    }

我目前为此渲染 View 的尝试:
<% using (Html.BeginForm("Update", "Parameters") {%>
...
<% foreach( var parameter in Model.Parameters ) { %>
            <div><%: parameter.ParameterName %></div>
            <div><%: Html.DropDownListFor(x => parameter.SelectedParameterValueID, parameter.ParameterValueList, "Please select") %></div>

<% } %>
...

我的问题是如何呈现允许我提交表单并将合理可理解的模型返回到我的表单操作的 View ,该模型将允许我获取所选参数值的列表。我不知道这里的最佳实践或技巧,所以我将不胜感激我得到的任何反馈:)

最佳答案

您可以尝试使用 FormCollection :

public ActionResult Submit(FormCollection formCollection)
{
     //Iterate form collection to get fields

     return View();
}

关于asp.net-mvc - ASP.NET MVC 表单处理未知数量的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4389214/

相关文章:

asp.net - 如何使用 json 将复杂类型传递给 ASP.NET MVC Controller

asp.net - 经典的 ASP 和 ASP.NET MVC 可以在同一个站点上并行运行吗?

asp.net-mvc - 在html.actionlink上,单击转到上一页

wpf - WPF 中两个 ListBox 之间的通信

asp.net-mvc - DataAnnotationsModelBinder 如何与自定义 ViewModel 配合使用?

android-fragments - 如何在 Android 的单个片段中使用多个 View 模型?

javascript - 复选框 onchange 函数

html - 如何对齐输入内的文本?

javascript - 一个字段上的语义 ui 表单验证规则是否可以以不同的字段为条件?

javascript - 表单无法提交,未捕获类型错误 : Illegal invocation