在我的网络应用程序中,我的参数可以包含各种疯狂的字符(俄语字符,斜杠,空格等),因此不能总是在URL中表示为.
以快乐的方式发送它们将在大约50%的情况下起作用.像空格这样的东西已经在某处编码了(我猜是在Html.BuildUrlFromExpression中).但是其他东西(比如"/"和"*")则没有.
现在我不知道该怎么做了,因为如果我自己编码,我的编码会再次被部分编码并最终出错.如果我不对它们进行编码,则某些字符将无法通过.
我所做的是手动.replace()我遇到问题的角色.
这当然不是一个好主意.
想法?
- 编辑 -
我知道有很多编码/解码库供我使用.
它看起来像mvc框架已经尝试为我做,但不是完全.
<a href="<%=Html.BuildUrlFromExpression<SearchController>(c=>c.Search("", 1, "a \v/&irdStr*ng"))%>" title="my hat's awesome!">
Run Code Online (Sandbox Code Playgroud)
会让我
<a href="/Search.mvc/en/Search/1/a%20%5Cv/&irdStr*ng" title="my hat's awesome!">
Run Code Online (Sandbox Code Playgroud)
注意正斜杠,星号和&符号是如何不被转义的.为什么有些人逃脱而其他人没有逃脱?我怎么能正确地逃脱这个?
我做错了什么还是框架?
对于我的网站,我配置了一些自定义错误页面 如果我生成404,重定向工作正常.点击400时,显示"错误请求"文本而不是配置的URl.
作为测试,我将URL从404复制到400.没有变化.然后我将重定向更改为文件.没变.
有任何想法吗?
我将我的Web应用程序从预览3转换为beta1,现在我正在尝试使用框架的新功能.其中之一是ModelBinding.
对于这种特殊情况,我创建了一个类(现在)只是一堆简单类型属性的容器.如果我创建一个包含大量文本框的表单,我希望框架用这些字段填充SearchBag实例.
任何帮助表示赞赏.
我想从一个控制器中的操作重定向到第二个控制器中的操作.通常我会使用RedirectToAction("actionName","controllerName",对象); 我想重定向到的方法有两个重载:
当我使用RedirectToAction方法进行重定向时,默认情况下会重定向到GET方法,当然这与我的参数不匹配.
如何确保重定向到正确的操作过载?
--EDIT--
根据要求提供一些更具体的细节:
我想重定向的动作根据参数填充viewData,然后调用正确的视图.
public ActionResult OverView(SearchBag searchBag, IngredientBag ingredientBag) {
Run Code Online (Sandbox Code Playgroud)
它有第二个版本的Get,所以它也可以通过GET工作:
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult OverView(int colorId, string paintCode, string name, int formulaId) {
return OverView(new SearchBag()
{ ColorId = colorId, PaintCode = paintCode, ColorName = name, FormulaId = formulaId }
, formulaViewData.IngredientBag);
}
Run Code Online (Sandbox Code Playgroud)
我现在打电话的是一个不同的控制器.它进行一些预先计算,获取所需的信息,然后执行与先前操作完全相同的操作.我可以从第一个动作复制代码,但我宁愿只是调用该动作.
[AcceptVerbs(HttpVerbs.Post)]
public RedirectToRouteResult ReCalculate(SearchBag searchBag, IngredientBag ingredientBag) {
Run Code Online (Sandbox Code Playgroud)
我可以创建下一个控制器的临时本地实例,但我注意到它没有正确的HTTPContext并且没有点击初始化方法.
在Visual Studio 2008中,有一个选项"Optimize Code"可能对应于/ optimize选项.它永远不会启用,即使在"释放"模式下也是如此.
为什么我不希望始终启用此选项?
我希望我的Lucene查询包含类似于:
companyNam:梅赛德斯卡车
它将在companyName字段中与字符串"mercedes trucks"完全匹配.
companyName是一个未加密的字段,但任何带空格的东西都会返回null结果.
new TermQuery(new Term("companyName", "mercedes trucks"));
Run Code Online (Sandbox Code Playgroud)
如果涉及空间,则总是得到0结果.否则我的程序运行正常.
在我的asp.net-mvc项目中,我进行了从post请求到get请求的重定向.
在我的重定向和我到达的方法之间,我希望它到达,我的一个参数神奇地变成空,我无法弄清楚为什么.
可能它与我的global.asax(路由防御)有关.
我可以用来调试它的唯一方法是使用路由调试器库.但我不知道如何使用RedirectToRoute.
有什么建议?
在VS2008中(早期如果我没有误会)我有下拉列表,让我在调试和发布模式之间进行选择.一切安好.
当我将VS切换到Release时,我的web.config文件中的debug属性根本不会设置为false.
这是应该的方式吗?我一定会忘记在部署时将其设置为正确的值.我应该采取什么措施来确保它的运行方式应该如此?
在使用MVC框架一段时间后,我必须说我喜欢它,但在我看来,总有一件事就是在MVC派对蛋糕上大吃一惊.缺乏良好,可重复使用和便携的"控件".这就是HtmlHelpers应该加入的地方.
在阅读了这篇博文之后,我开始思考我对HtmlHelper的期待是什么,我希望将其公之于众,以便其他(更聪明)的人能够加入我的努力.
这样,任何开发人员都可以轻松使用某些HtmlHelper,而无需阅读整个文档.我喜欢JQuery通常这样做,所以也许模仿这个是个好主意.
用stringbuilders编写Html只是一种痛苦.如果我们可以在Html或asp文件中编写Html以后编译到dll中,这不是很好吗?
我想我不是唯一一个用asp:contentholder专门为他的javascript和css构建他的主页的人.最好是底部的js和页面顶部的css.如果HtmlHelper可以将所需的引用和脚本块放在那里,那不是很好吗?也许检查双重参考..
目前我觉得每个人都只是在他们自己的私人图书馆中一遍又一遍地重建相同的轮子.如果我们有一些存储库,那么我们可以将所有这些工作结合在一起,这不是很好吗?
我错过了这条线上已有的努力吗?如果不是,你认为这是一个有用的想法?你会成为参与者吗?
我在操作系统方面的经验很少,但我觉得这可能是社区所渴望的.有没有更多os项目xp的人看到了这个中的任何陷阱?
我有一个我想要复制到多个位置的目录.
说我有
我想把它复制到
所以我有两个问题:
asp.net-mvc ×7
c# ×4
.net ×2
asp.net ×1
copy ×1
css ×1
encoding ×1
html ×1
html-helper ×1
iis ×1
lucene.net ×1
msbuild ×1
msbuild-task ×1
routing ×1