小编Lan*_*ney的帖子

是否可以在自定义AuthorizeAttribute类中使用RedirectToAction()?

使用ASP.Net MVC 2,有没有办法在基于类的类中使用Controller类的RedirectToAction()方法?AuthorizeAttribute

public class CustomAttribute : AuthorizeAttribute {
    protected override bool AuthorizeCore(HttpContextBase context) {
        // Custom authentication goes here
        return false;
    }

    public override void OnAuthorization(AuthorizationContext context) {
        base.OnAuthorization(context);

        // This would be my ideal result
        context.Result = RedirectToAction("Action", "Controller");
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种方法,在用户验证失败时将用户重定向到特定的控制器/操作,而不是将其返回到登录页面.是否可以为该控制器/操作生成重定向 URL,然后使用RedirectResult()?我试图避免仅仅对URL进行硬编码的诱惑.

asp.net-mvc

59
推荐指数
2
解决办法
4万
查看次数

在ReSharper 5中为ASP.Net MVC强调的红色下划线有什么意义?

我最近升级到使用ReSharper 5(目前处于测试阶段).我注意到在ASP.Net MVC项目中,ReSharper以红色突出显示控制器内的所有返回语句:

恼人的红色下划线

我个人认为这很烦人,因为它看起来像是一个错误.单击带下划线的文本不提供任何帮助(即灯泡).我没有看到更改此文本样式的选项Environment -> Fonts and Colors,到目前为止看起来禁用它的唯一方法是取消选中ASP.Net -> OtherRe-Sharper选项中的"启用ASP.Net MVC引用" .

这个重点是什么意思?我错过了ReSharper为我提供的一些特别的东西吗?有没有办法在ReSharper中仍然启用MVC支持时删除突出显示?

asp.net-mvc resharper visual-studio

25
推荐指数
3
解决办法
5475
查看次数

在ASP.Net MVC 2中为非属性模型验证提供本地化错误消息?

我正在使用DataAnnotations属性和ASP.Net MVC 2为我的ViewModel提供模型验证:

public class ExamplePersonViewModel {
    [Required(ErrorMessageResourceName = "Required", ErrorMessageResourceType = typeof(Resources.Validation))]
    [StringLength(128, ErrorMessageResourceName = "StringLength", ErrorMessageResourceType = typeof(Resources.Validation))]
    [DataType(DataType.Text)]
    public string Name { get; set; }

    [Required(ErrorMessageResourceName = "Required", ErrorMessageResourceType = typeof(Resources.Validation))]
    [DataType(DataType.Text)]
    public int Age { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这似乎按预期工作(尽管它非常冗长).我遇到的问题是,正在执行的幕后模型验证与任何特定属性无关.上述模型中的一个例子是该Age属性需要是一个int.如果您尝试在表单上输入非整数值,则会出现以下(非本地化)消息时出错:

字段Age必须是数字.

如何对这些非属性验证消息进行本地化?

是否有可用的这些消息的完整列表,以便我可以确保它们都已本地化?

asp.net-mvc localization data-annotations

19
推荐指数
2
解决办法
1万
查看次数

为什么在保存Django模型期间会将post_save提升两次?

我将一个方法附加到我的Django模型的post_save信号.这样,无论何时修改模型,我都可以清除一些缓存的项目.

我遇到的问题是在保存模型时信号被触发两次.它不一定会伤害任何东西(代码只会优雅地错误)但它不可能是正确的.

一个简单的例子,只需将模型打印到控制台(使用开发服务器):

from blog.models import Post
from django.db.models import signals

def purge_cache(sender, **kwargs):
    print 'Purging %s' % sender

signals.post_save.connect(purge_cache, sender=Post)
Run Code Online (Sandbox Code Playgroud)

这是使用Django的稳定1.1.1版本.

更新信息:

根据每个人的评论反馈,我修改了我的问题,因为现在问题是发现为什么post_save被触发两次.我现在的猜测是我的models.py代码被导入两次,并且post_save多次连接.

什么是最好的方法来弄清楚为什么它被导入/跑两次?

python django signals django-models

15
推荐指数
2
解决办法
5630
查看次数

JQuery - 表单重置 - 排除"选择"框

所有,

我可以使用以下JQuery语法重置所有表单元素:

('#myform')[0].reset();
Run Code Online (Sandbox Code Playgroud)

如何修改此选项以排除重置"选择框"值?

谢谢

javascript forms jquery reset

8
推荐指数
2
解决办法
3万
查看次数

科莫多编辑5.2 Django模板语法错误 - 信息:<head>前面提到过

我正在使用Komodo Edit 5.2来编辑html和Django模板文件.它始终在我模板的第一个标记的第一个{%block%}区域内显示单个语法错误.

例如:

{% extends "base.html" %}
{% load i18n %}

{% block title %}Hello{% endblock %}

{% block content %}
    <p>Hello</p> <-- Syntax error on this single line
    <p>Other lines have no errors</p>
{% endblock %}

{% block footer %}
    <p>No errors here</p>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

给出的语法错误是:

Info: <head> previously mentioned
Run Code Online (Sandbox Code Playgroud)

我知道这个错误与我的<head>标签无关,因为它发生在基本模板和子模板中(并且IDE在儿童时不够聪明以处理基本模板等)所有我的html标签已正确关闭,所有内容都验证了XHTML严格.

这个论坛帖子提到了类似的问题,但没有提供任何解决方案(可能特定于Smarty语法突出显示).

有关如何解决此错误(或禁止显示)的任何想法?

django komodo django-templates komodoedit

8
推荐指数
1
解决办法
1907
查看次数

将列表排序为多个垂直列

有没有人有一个很好的算法来重新排序一个值数组(已经预先排序),以便它们可以显示在多个(N)列中并垂直读取?这将在.Net中实现,但我更喜欢可移植的东西,而不是一些神奇的功能.

它工作的一个很好的例子是ASP.Net CheckBoxList控件呈现为一个方向设置为垂直的表.

这是输入和输出的示例:

输入:

Columns = 4
Array = {"A","B","C","D","E","F","G"}

输出:

ACEG
BDF

谢谢!

更新(更多信息):

我想我可能需要提供一些关于我正在尝试做什么的更多信息...大多数问题来自于使用CheckBoxList的自动绑定(在这里你可以指定列和方向输出,它会输出使用jQuery/AJAX创建复选框网格的正确顺序的项目表.所以我试图使用具有指定宽度的div块的css复制该布局(在已知宽度的容器div内),因此它们包裹在N个项目(或列)之后.这也可以在表格中呈现(就像ASP一样) .Net做到了.)

一切都很好,除了顺序是水平的,当你在列表中获得大量项目时,更容易阅读垂直列.

如果数组中没有足够的项来生成偶数网格,那么它应该在网格的正确行/列中输出一个空白点.

如果一个数组没有足够的项目来制作一行,那么只需按原始顺序输出一行.

其他一些输入/输出可能是:

Columns = 3
Array = {"A","B","C","D"}

ACD
B.

Columns = 5
Array = {"A","B","C","D","E","F","G","H"}

ACEGH
BDF

Columns = 5
Array = {"A","B","C","D"}

A B C D

.net sorting checkbox list

6
推荐指数
1
解决办法
3788
查看次数

如何在Django中创建unique_for_field slug?

Django有一个unique_for_date属性,您可以在向模型添加SlugField时设置该属性.这会导致slug仅对您指定的字段的Date具有唯一性:

class Example(models.Model):
    title = models.CharField()
    slug = models.SlugField(unique_for_date='publish')
    publish = models.DateTimeField()
Run Code Online (Sandbox Code Playgroud)

对于像ForeignKey这样的非DateTime字段,实现相同功能的最佳方法是什么?理想情况下,我想做这样的事情:

class Example(models.Model):
    title = models.CharField()
    slug = models.SlugField(unique_for='category')
    category = models.ForeignKey(Category)
Run Code Online (Sandbox Code Playgroud)

这样我就可以创建以下网址:

/example/category-one/slug
/example/category-two/slug
/example/category-two/slug <--Rejected as duplicate
Run Code Online (Sandbox Code Playgroud)

我的想法到目前为止:

  • 将slug和categoryid的唯一索引添加到表中.这需要Django之外的代码.当插入/更新失败时,内置管理员会正确处理吗?

  • 覆盖模型的保存并添加我自己的验证,如果存在重复则抛出错误.我知道这会起作用,但看起来不是很干.

  • 创建一个继承自base的新slug字段,并在那里添加unique_for功能.这似乎是最好的方法,但我查看了核心的unique_for_date代码,并且扩展它似乎不太直观.

有关最佳方法的任何想法,建议或意见?

django django-models slug

6
推荐指数
1
解决办法
2531
查看次数