问题列表 - 第37777页

具有自定义异常的ASP.NET MVC 2模型错误

我有一个自定义异常类:

public class MyException: Exception
{
   public MyException(MyExceptionEnum myError) : base(myError.ToDescription()) { }
   public MyException(MyExceptionEnum myError, Exception innerException) : base(myError.ToDescription(), innerException) { }
}
Run Code Online (Sandbox Code Playgroud)

.ToDescription是一种扩展方法,MyExceptionEnum用于为异常错误详细信息提供枚举到字符串映射.

这是我扔它的方式:

if (someCondition)
   throw new MyException(MyExceptionEnum.SomeError);
Run Code Online (Sandbox Code Playgroud)

所以我使用我的第一个ctor,它创建一个带有给定消息的新Exception.

现在进入控制器:

[HttpPost]
public ActionResult UpdateFoo(Foo model)
{
   try
   {
      _fooService.UpdateModel(model);
      _unitOfWork.Commit();
   }
   catch(MyException myException)
   {
      ViewData.ModelState.AddModelError("ModelErrors", myException);
   }

   return View("Index", model);
}
Run Code Online (Sandbox Code Playgroud)

最后来自View的片段:

<%: Html.ValidationMessage("ModelErrors") %>
Run Code Online (Sandbox Code Playgroud)

不起作用(我调试时抛出异常,错误被添加到模型状态,但页面上没有显示).

但是,如果我改为以下行:

ViewData.ModelState.AddModelError("ModelErrors", myException.Message);
Run Code Online (Sandbox Code Playgroud)

有用.

AddModelError 有两个重载:

  1. 字符串,异常(对我不起作用)
  2. 字符串,字符串(作品)

那么第一次过载有什么用呢?我的异常确实有一个内部异常消息,所以我认为HTML扩展会呈现这个?

我们如何使用ModelState处理自定义异常呢?使用第二次过载是否正确?

c# custom-exceptions modelstate asp.net-mvc-2-validation asp.net-mvc-2

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

AuthenticatedSystem是开源RoR模块吗?

我正在看这个github应用,他们有一个名为AuthenticatedSystem的模块。

我用Google搜索并找到了一个rdoc,但是找不到该模块的源代码。

有人听说过吗?我知道还有其他身份验证模块,但是我希望向我学习,因为它对我来说很简单。

ruby-on-rails

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

DOM解析器,允许HTML5样式的</ in <script>标记

更新 :( html5lib问题的底部)似乎接近,我只需要提高我对它如何使用的理解.

我正在尝试为PHP 5.3找到兼容HTML5的DOM解析器.特别是,我需要在脚本标记中访问以下类似HTML的CDATA:

<script type="text/x-jquery-tmpl" id="foo">
    <table><tr><td>${name}</td></tr></table>
</script>
Run Code Online (Sandbox Code Playgroud)

大多数解析器都会过早地解析,因为HTML 4.01 在标记</内部找到ETAGO()时会结束脚本标记解析<script>.但是,HTML5 允许</之前</script>.到目前为止,我尝试过的所有解析器都失败了,或者它们的文档记录很差,以至于我还没弄清楚它们是否有效.

我的要求:

  1. 真正的解析器,而不是正则表达式.
  2. 能够加载整页或HTML片段.
  3. 能够将脚本内容拉回,通过标签的id属性进行选择.

输入:

<script id="foo"><td>bar</td></script>
Run Code Online (Sandbox Code Playgroud)

输出失败的示例(无关闭</td>):

<script id="foo"><td>bar</script>
Run Code Online (Sandbox Code Playgroud)

一些解析器及其结果:


DOMDocument(失败)

资源:

<?php

header('Content-type: text/plain');
$d = new DOMDocument;
$d->loadHTML('<script id="foo"><td>bar</td></script>');
echo $d->saveHTML();
Run Code Online (Sandbox Code Playgroud)

输出:

Warning: DOMDocument::loadHTML(): Unexpected end tag : td in Entity, line: 1 in /home/adam/public_html/2010/10/26/dom.php on line 5
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><head><script id="foo"><td>bar</script></head></html> …
Run Code Online (Sandbox Code Playgroud)

php html5 dom

48
推荐指数
4
解决办法
1万
查看次数

asp.net mvc身份验证cookie问题

我正在尝试使用ASP.NET MVC实现"记住我"功能.它使用如下定义的自定义身份验证过程.

Web.config文件:

    <authentication mode="Forms">
        <forms loginUrl="/Account/Login" defaultUrl="/Home/MyAccount" timeout="43200"/>
    </authentication>
Run Code Online (Sandbox Code Playgroud)

用于持久cookie的代码:

public void SignIn(string userName, bool createPersistentCookie) {
    int timeout = createPersistentCookie ? 525600 : 120; // Timeout in minutes, 525600 = 365 days.
    FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(userName, createPersistentCookie, timeout);
    string encrypted = FormsAuthentication.Encrypt(ticket);
    HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encrypted);
    cookie.Expires = System.DateTime.Now.AddMinutes(timeout);

    HttpContext.Current.Response.Cookies.Add(cookie);
    FormsAuthentication.SetAuthCookie(userName, createPersistentCookie);
}
Run Code Online (Sandbox Code Playgroud)

检索cookie的代码:

        if (System.Web.HttpContext.Current.Request.Cookies.AllKeys.Contains(FormsAuthentication.FormsCookieName)) {
            cookie = System.Web.HttpContext.Current.Request.Cookies[FormsAuthentication.FormsCookieName];
        }
Run Code Online (Sandbox Code Playgroud)

当前代码检查Session以进行身份​​验证.我想添加从cookie获取userName的功能.我有两个问题:

  1. 为了检索cookie,我需要做什么?
  2. 如何解密cookie以获取userName?

干杯,

院长

asp.net-mvc

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

在列中查找最小值

我有一个包含整数的HTML表列.使用JavaScript或JQuery获取最小值的最有效方法是什么?

html javascript jquery html-table

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

你如何在Ruby中找到机器上的物理内存?

我想知道系统上有多少物理内存可用,不包括任何交换.有没有一种方法可以在Ruby中获取此信息?

ruby memory

7
推荐指数
2
解决办法
5986
查看次数

如何实现标准的Windows Phone 7 ComboBox替换UI

我正在尝试在Windows Phone 7中实现似乎是组合框的标准UI替换.这是TextBox +导航到使用Listbox方法的新页面,您可以在模拟器的设置页面中看到.

尝试实现此方法时,我遇到了以下问题,特别是与TextBox相关:

  1. 如果我使用ReadOnly TextBox,文本将以浅灰色显示,这不是我想要的.我想要普通的黑色字体.
  2. 如果我不使用ReadOnly TextBox,即使我处理了MouseEnter事件,虚拟手机键盘也会出现在一些罕见的情况中.当键盘出现时,我无法始终如一地重现这种情况.

哪种方法是实现此行为的最佳方法?

combobox windows-phone-7

4
推荐指数
1
解决办法
7192
查看次数

使用MVC和Razor创建object.cshtml编辑器模板

我想为Object.cshtml创建一个编辑器模板来改变Html.EditorForModel()方法的行为.我用Razor找不到任何这样的例子.我已经看过这个使用MVC2和WebForm视图引擎的例子,但对razor的转换知之甚少.即使是一个简单的例子也会非常有用.

asp.net-mvc razor

12
推荐指数
1
解决办法
8643
查看次数

PHP可选参数 - 按名称指定参数值?

我知道可以使用可选参数,如下所示:

function doSomething($do, $something = "something") {

}

doSomething("do");
doSomething("do", "nothing");
Run Code Online (Sandbox Code Playgroud)

但是假设你有以下情况:

function doSomething($do, $something = "something", $or = "or", $nothing = "nothing") {

}

doSomething("do", $or=>"and", $nothing=>"something");
Run Code Online (Sandbox Code Playgroud)

因此,在上面的行中它将默认$something为"某事",即使我为其他一切设置了值.我知道这在.net中是可能的 - 我一直都在使用它.但如果可能的话,我需要在PHP中执行此操作.

任何人都可以告诉我这是否可能?我正在改变我已经整合到Interspire购物车中的Omnistar联盟计划 - 所以我想保持一个功能正常工作,我不会改变对该功能的调用的任何地方,但在一个地方(我正在扩展)我想要指定其他参数.除非我绝对必须,否则我不想创建另一个函数.

php function optional-parameters user-defined-functions

7
推荐指数
1
解决办法
5617
查看次数

整数值不是Common Lisp中的数字?

当我通过调用执行以下Common Lisp程序时(play),我收到错误:Argument X is not a NUMBER: Guess

;;;; number-game.lisp
;;;;
;;;; Andrew Levenson
;;;; 10/25/2010
;;;;
;;;; Simple number guessing game. User has
;;;; five guesses to determine a number between
;;;; one and one hundred, inclusive (1-100).

;;; Set global variable for the target number:
(defparameter *target* nil) 

;;; Set the iterator so we may check the number of guesses
(defparameter *number-of-guesses* 0)

;;; Welcome the user
(defun welcome-user ()
    (format t "Welcome to the …
Run Code Online (Sandbox Code Playgroud)

lisp stdin sbcl common-lisp

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