如何在ASP.Net MVC视图中访问扩展方法?在C#我做
using MyProject.Extensions;
Run Code Online (Sandbox Code Playgroud)
我记得看到一个等同于放入视图的XML,但我再也找不到了.
如何在asp.net(C#)中索引存储在数据库(使用MS SQL Server)中的.doc和.pdf文件?
是否有任何解决方案来访问HttpResponseBase.WriteSubstitution()方法中的TempData属性
这不起作用:
<%= Response.WriteSubstitution(x => Html.Encode(TempData["message"].ToString())) %>
Run Code Online (Sandbox Code Playgroud)
但这有效:
<%= Response.WriteSubstitution(x => DateTime.Now.ToString()) %>
Run Code Online (Sandbox Code Playgroud)
问题出在一次缓存页面的请求处理中.根据http://msdn.microsoft.com/en-us/library/system.web.httpresponse.writesubstitution.aspx:
在对页面的第一个请求中,WriteSubstitution调用HttpResponseSubstitutionCallback委托来生成输出.然后,它为响应添加一个替换缓冲区,该代码保留委托以便在将来的请求上调用.最后,它将客户端可缓存性从公共服务器降级到仅服务器,确保将来对页面的请求通过不在客户端上缓存来重新调用委托.
换句话说,委托无权访问Session属性(SessionStateTempDataProvider在会话中存储TempData),因为没有"正常"的请求生命周期.据我所知,它是在HttpApplication.ResolveRequestCache/HttpApplication.PostResolveRequestCache事件处理的,但当前状态是在HttpApplication.AcquireRequestState事件中获取的(http://msdn.microsoft.com/en-us/library/ms178473.aspx)
也许我需要某种"高级自定义TempDataProvider":)任何想法?
根据Miguel de Icaza的帖子(这里和这里)和Lluis Sanchez Gual的帖子(这里和这里)MonoDevelop for Windows即将推出.我个人非常喜欢在Windows下使用MonoDevelop开发ASP.NET MVC的开源项目.是的,最好在Linux下的MonoDevelop中工作,但由于很多原因,我不能简单地停止使用Windows(IIS7是其中一个原因 - 今天它比ASP.NET更好用于ASP.NET).
问题N1:有人会在Windows上使用MonoDevelop尝试在ASP.NET MVC中开发一些东西吗?
问题N2:与Visual Web Developer Express 2008相比,在Windows上使用MonoDevelop是否有任何优势?
问题N3: IDE(MonoDevelop和VWD Express)都是免费的,但对于开源开发来说实际上更好/更好,为什么(这对我来说非常有趣)?
编辑:
是的,我使用的是完整的Visual Studio 2008 Pro,它是一个很棒的IDE.但它不能用于开源开发 - 我认为这是无稽之谈.我实际上是为此付出了代价 - 但我不能指望它来自我的图书馆用户.所以我只能选择Mono Develop或VWD Express?(见问题N3)
谢谢
我从DotNetOpenId下载的示例与创建新应用程序时获得的MVC 1.0应用程序的文件不同.
我是MVC和openId的新手,我遇到的所有例子都很老.
任何人都可以向我指出使用DotNetOpenId实现Openid与ASP.net MVC的例子.
当通过GET而不是POST调用时,我似乎遇到了让MVC填写我的自定义模型参数的问题.
我有一个JavaScript代码段,可以调用这样的动作:
$.getJSON('<%= Url.Action("DoSearch") %>' + location.search,
function(data) {
if (data.Result == "OK") {
location.href = location.href;
}
});
Run Code Online (Sandbox Code Playgroud)
它的作用基本上是调用一个单独的动作,传递与调用页面相同的查询字符串.然后,如果结果为"OK",则刷新当前页面.
该操作的定义如下:
public ActionResult DoSearch(SearchParameters searchParameters)
Run Code Online (Sandbox Code Playgroud)
该模型是:
public class SearchParameters
{
public string Query;
...
}
Run Code Online (Sandbox Code Playgroud)
调用URL(用firebug验证)就像/DoSearch?Query=some+query
.(也尝试/DoSearch?searchParameters.Query=some+query
没有成功)
无论我尝试什么,我的参数总是显示为空(不为空,只是所有参数都被初始化为默认值)
如果我定义这样的动作:
public ActionResult DoSearch(string Query, ...)
Run Code Online (Sandbox Code Playgroud)
然后我的参数被正确填充.然而,不是模型.
我假设:
a)填充对象模型对GET请求不起作用.
b)我做错了什么
有任何想法吗?谢谢.
asp.net-mvc ×5
asp.net ×3
ajax ×1
c# ×1
jquery ×1
modelbinder ×1
monodevelop ×1
ms-word ×1
open-source ×1
openid ×1
pdf ×1
sql-server ×1
views ×1
vwdexpress ×1