Asp.net mvc ASP.NET MVC 2.0。。。。从模型生成查询URL参数?

Asp.net mvc ASP.NET MVC 2.0。。。。从模型生成查询URL参数?,asp.net-mvc,asp.net-mvc-routing,Asp.net Mvc,Asp.net Mvc Routing,我有一个ASP.NET MVC应用程序,其中有一部分我不想使用自动url功能。我有大量的可选参数需要传入。这基本上适用于复杂的查询表单。。。不在使用中的参数(即具有默认值)不应成为URL的一部分。我喜欢所有其他元素的URL路由,但它在这里确实不合适。URL中有20个左右的字段,其中17个字段为空,这并不能真正提高可读性 我遇到的主要问题是动作链接的生成。在查询编辑器的部分视图中,我希望生成一个指向结果页面的操作链接。它们都共享相同的模型(所有参数都是属性) 是否有一种方法可以从模型开始生成要使用

我有一个ASP.NET MVC应用程序,其中有一部分我不想使用自动url功能。我有大量的可选参数需要传入。这基本上适用于复杂的查询表单。。。不在使用中的参数(即具有默认值)不应成为URL的一部分。我喜欢所有其他元素的URL路由,但它在这里确实不合适。URL中有20个左右的字段,其中17个字段为空,这并不能真正提高可读性

我遇到的主要问题是动作链接的生成。在查询编辑器的部分视图中,我希望生成一个指向结果页面的操作链接。它们都共享相同的模型(所有参数都是属性)


是否有一种方法可以从模型开始生成要使用的查询字符串参数?默认情况下,Other rway(将字段绑定到模型属性)已经存在,但我需要一种生成查询字符串的方法。。。。最好是自动进行。

您所描述的内容听起来像是一个简单的
if
树:

StringBuilder myQueryString = new StringBuilder();

if (parameter1 != null)
    myQueryString.Append("&Parameter1=" + parameter1.ToString());

if (parameter2 != null)
    myQueryString.Append("&Parameter2=" + parameter2.ToString());

当然,假设查询字符串中已经存在至少一个参数。

您真的需要在URL中传输大约20个参数吗?为什么不使用POST?该场景是用于报告的复杂筛选表单。URL是必需的,这样人们基本上可以复制/粘贴URL并将其发送到内部网(“嘿,看看那些销售编号……xxx”)。有些报告有很多潜在的过滤器。想象一下一个CRM、销售管理应用程序或一个愚蠢的小事件/票据管理系统。。。。还有搜索表。不太对。。。。因为这是服务器端。主要的问题可能围绕着客户端——操作链接的生成。我如何才能做到最好——毕竟,我需要检查每个可能的字段是否为默认值,然后生成参数字符串。相当多的工作,你说呢?ASP.NET MVC框架中是否不支持此功能?作为客户端问题,您可以编写Javascript或jQuery来解决此问题,或者您可以将您的值发布回控制器方法,创建所需的Url,然后将页面转发到生成的Url,显示搜索结果。后一种方法可能更容易,尤其是如果您不喜欢编写Javascript或jQuery的话。好吧,那么MVC2.0没有内部的规定(一种帮助方法)来做同样的事情,并且基本上生成一个客户端调用?这将关闭它——遗憾的是,将此标记为答案;)助手方法不起作用,因为在用户有机会填写搜索字段之前,它已经执行了。我将简单地使用两种控制器方法。第一个控制器方法将处理post并生成URL,第二个控制器方法将接收参数值并显示结果。不要悲伤;这是一个很好的方法。:)嗯,我更多地考虑了一个助手方法,它在服务器rto上发出适当的脚本来生成URL,从而节省了重定向的时间。不过,将采用这种方法-发回,然后使用所有参数生成指向URL的重定向。