有人能告诉我如何创建自定义转换器
我知道我可以使用JSON.NET ISODateConvertor,但我想要的是具体的,我只想在响应时将值作为"日/月/年"字符串发送.
我通过网络阅读理解它的方式是声明存储为cookie,现在我将用户的角色添加到声明集合中,因此它将保存到声明Cookie中.现在这很好,因为每次我在ASP MVCController中检查授权属性时,它会省去数据库轮次跳转以检索用户角色.
如何根据参数类型创建一个具有动态返回类型的函数?
喜欢
protected DynamicType Test(DynamicType type)
{
return ;
}
Run Code Online (Sandbox Code Playgroud) 我要使用Nuts,我正在使用MVCContrib,使用Portable Areas创建可插拔站点,到目前为止一切运行良好,除了当我开始使用MVC模板时,发生的事情是如果我将模板放在相应的文件夹中查看它的工作原理,例子
HostApplication/Views/Home/DisplayTemplates/FirstName.cshtml
HostApplication/Areas/PortableArea_Blog/Views/Home/DisplayTemplates/Auther.cshtml
Run Code Online (Sandbox Code Playgroud)
但我真正想要的是能够创建通用模板从主机应用程序或便携式区域设置和利用它,所以要做到这一点,我创建了一个新的便携式区域称为DisplayTemplates(利用MVCContrib能力编译视图),这里是便携式区域结构
DisplayTemplates
|-Views
|-CommentTemplate.cshtml
Run Code Online (Sandbox Code Playgroud)
现在在我的主机应用程序中我创建了一个测试模型并添加了UIHint属性
public class HostModel
{
[UIHint("~/Areas/DisplayTemplates/Comment.cshtml")]
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
但它不起作用,所以我认为它与部分视图位置有关,所以我创建了一个CustomView引擎来查找该位置的部分视图并在Global.asax中注册它,这里有一个简短的想法,所以我不会厌烦你完整的代码
public class AreaViewEngine : RazorViewEngine
{
public AreaViewEngine()
{
// {0} = View name
// {1} = Controller name
// View locations
ViewLocationFormats = new[]
{
"~/Areas/DisplayTemplates/{0}.cshtml"
};
PartialViewLocationFormats = ViewLocationFormats;
AreaPartialViewLocationFormats = ViewLocationFormats;
}
protected override IView CreatePartialView(ControllerContext controllerContext, string partialPath)
{
return new RazorView(controllerContext, partialPath, null, true, new[] { "cshtml" });
}
protected override IView …Run Code Online (Sandbox Code Playgroud) 创建网站的最佳实践是什么,能够为其开发插件?
就像您想要创建一个博客模块一样,您希望用户或共同开发人员添加插件来扩展此模块功能.
更新: 感谢超速的答案,但我认为这对我来说已经过时了.是不是有一个更简单的解决方案,就像我看到的blogengine插件创建系统你只需要用[Extension]来装饰类插件.
我是中级核心开发人员,所以我在想基类,继承,接口,你怎么看?
众所周知,更新面板向服务器发送相同的响应作为完整的帖子回来(或者我理解错误),它确实比完整的帖子更好.
那么有没有只发送响应数据的替代方案?就像你有一个方法,错误的返回日期,我认为这是唯一应该发送的东西,而不是将要显示它的整个控制视图状态(再次,也许我明白错了).
我正在使用Telerik AJAX控件,它们是基于Microsoft AJAX构建的,因此没有太大的改进.
我喜欢的一种方法是http://www.coolite.com/他们有AJAX方法和事件,我认为这是我正在寻找的,但项目进展缓慢,并没有我的要求的灵活性.
所以任何输入都受到高度赞赏.
我有一个非常棘手的问题需要我解决,我想了很多,然后又找到了一个我要提到的结论.问题是我有一个希望创建一个基于通用功能的网站,让我们叫它模块,所以我以为是使用MVC的Contrib便携式领域,这是伟大的想法,将模块客户端,但我有一个很大的问题,让我们说我创建了一个Blog模块,它将在他想要的新网站中实现,现在一些用户有独特的要求,比如其中一个需要为每篇文章添加图片库,或者每篇文章中的参考列表.在正常情况下,如果您有一个站点可以工作,这很容易,所以您需要做的就是
但在我的情况下,由于两个原因,它很复杂,而且时间繁琐
这就是为什么作为第一步解决我使用的便携式领域创造附加组件为每个模块,现在这肯定会通过拖动1个DLL为每个新的模块或附加组件减轻我的工作,这个问题,但我在这里有一个小问题,
我们这是特定的模块附加组件的最大问题:)让我们回条画廊插件,如果我按照我已经通过创建它作为一个便携式区域上面提到的逻辑,它会更容易在模块来创建一个功能通过所有已安装附加组件代码回路,并列出它们在CRUD意见,但因为我孤立附加组件,不想手动更新主模块代码由于上述原因会有没有办法做CRUD操作的新的附加组件与主模块同步,因为没有外键关系,再次因为如上所述它可能是可选的,所以我想到了以下解决方案,我希望有一个更好的解决方案
首先,在安装过程中,我创建画廊附加组件一个表,但不是创建一个外键关系,我将创建一个手动外键,这将通过生成的主模块控制器一个唯一的ID,当我通过创建记录获取填充下面的代码然后将它存储在ViewData中,并在创建新记录时将其传递给Addon Controller,
private string GenerateId()
{
long i = 1;
foreach (byte b in Guid.NewGuid().ToByteArray())
{
i *= ((int)b + 1);
}
return string.Format("{0:x}", i - DateTime.Now.Ticks);
}
ViewData["FK"] = GenerateId();
Run Code Online (Sandbox Code Playgroud)
但这是我的担忧
如果我的问题很蹩脚,我感到非常抱歉,但这是最好的问题,我想很多人都希望有这样的功能,希望有人能回答我
我已经阅读了一些博客(很抱歉没有提及参考但我再也找不到了)如果您将用户从https页面重定向到http页面,您将失去保护站点的所有工作.
那么,在下列情况下,有人可以向我解释一下我是对还是错:
在登录页面上使用https然后将其重定向到带有http的管理页面是正确的做法,还是会产生会话修复劫持,窃取会话等安全问题?
或者我必须将管理页面也保留在https中吗?
问题的另一方面是:https是否允许缓存静态文件?
我在这里读过其他文章,但我仍然感到困惑,因为有人说'是',有些人说'不'; 也有人说它取决于浏览器.
也许我理解这一切都是错的,但据我所知,保护你的连接字符串的最好方法是加密它,现在我有了这些问题.
问题1:
将加密在共享托管环境中工作?
问题2:
如果我有FTP服务,任何用户都可以上传ASPX文件并通过配置管理器命名空间检索连接字符串吗?
假设我有一个带有一些属性和属性的A类,和带有相同的B类,如何在运行时将这两个属性和属性属性合并为一个类,或者更好的是我如何将这两个类添加到第三个类中作为这个新类的属性及其字段,属性,方法等...在运行时?
使用反射或新闻.NET 4.0动态或expando对象
编辑:该死的我很抱歉所有人都不清楚,我想要的是为MVC创建一个动态ViewModel,其他类在其他程序集中,我希望它们成为模型的一部分,具有Datavalidation属性.我不知道有多少或究竟这些类是要去的,所以我想通过组件迭代,并选择他们然后将它们添加到主视图模型.