html - 将大量参数传递给 Controller ​​?

标签 html asp.net asp.net-mvc-4

我正在创建一个“高级输入表单”,其中包含大量用于搜索数据的输入。我的问题是:将大量数据从 HTML 传递到 Controller 的最佳方法是什么。

我问的原因是。假设您有这个 HTML 表单:

 @using (Html.BeginForm("Loading", "AdvancedSearch"))
    {    
       <input type="text" id="keyword">
       <input type="text" id="keyword1">
       <input type="text" id="keyword2">
       <input type="text" id="keyword3">
       <input type="text" id="keyword4">
       <input type="text" id="keyword5">
       <input type="text" id="keyword6">
       <input type="text" id="keyword7">
       <input type="text" id="keyword8">
       <input type="text" id="keyword9">

       <input type="submit" value="Search" style="width: 150px;" /> 
    }

然后像这样将它全部传递给 Controller ​​会非常讨厌(我有更多的关键字):

public ActionResult Loading(string keyword1, string keyword2, string keyword3, string keyword4, string keyword5, string6
                         string keyword7, string keyword8, string keyword9){
//do things to the parameters!
return View();
}

那么你会如何执行这个 Action 或者你会这样做吗?

谢谢!

最佳答案

使用模型类。如果输入名称与模型属性匹配,MVC 引擎将为您进行映射。

public class Keywords
{
    public string keyword1 { get; set; }
    public string keyword2 { get; set; }
    ///etc...
}

而且您的操作要简单得多:

public ActionResult Loading(Keywords keywords){
    //do things to the parameters!
    var keyword1 = keywords.keyword1;
    return View();
}

关于html - 将大量参数传递给 Controller ​​?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26909083/

相关文章:

CSS - 如何使内容适合段落的宽度/高度?

asp.net-mvc - 如何删除 mvc 中带有选定选项标签的下拉菜单的模型状态错误?

c# - 将 WebSecurity 与 .Net winForms 应用程序一起使用

javascript - 创建一个像 html 复选框一样的 div

javascript - Jquery - 使用 grep 搜索表的所有列?

javascript - 什么解释了隐藏显示设置为内联的 div 与在 css 中的区别

javascript - 发出 AJAX 跨源请求时如何防止出现 "cookie associated with a cross-site resource set without SameSite attribute"警告?

asp.net - 如何使用 Razor 在 ASP.NET 网页中编写 at-sign 内部属性?

c# - 如何使用 MVC 6 解决 System.InvalidOperationException - 相同的模板

c# - Unity,使用语句和 PerRequestLifetimeManager