我有一个自定义异常类:
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 有两个重载:
那么第一次过载有什么用呢?我的异常确实有一个内部异常消息,所以我认为HTML扩展会呈现这个?
我们如何使用ModelState处理自定义异常呢?使用第二次过载是否正确?
c# custom-exceptions modelstate asp.net-mvc-2-validation asp.net-mvc-2
我正在看这个github应用,他们有一个名为AuthenticatedSystem的模块。
我用Google搜索并找到了一个rdoc,但是找不到该模块的源代码。
有人听说过吗?我知道还有其他身份验证模块,但是我希望向我学习,因为它对我来说很简单。
更新 :( 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>.到目前为止,我尝试过的所有解析器都失败了,或者它们的文档记录很差,以至于我还没弄清楚它们是否有效.
我的要求:
输入:
<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)
一些解析器及其结果:
资源:
<?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) 我正在尝试使用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的功能.我有两个问题:
干杯,
院长
我有一个包含整数的HTML表列.使用JavaScript或JQuery获取最小值的最有效方法是什么?
我正在尝试在Windows Phone 7中实现似乎是组合框的标准UI替换.这是TextBox +导航到使用Listbox方法的新页面,您可以在模拟器的设置页面中看到.
尝试实现此方法时,我遇到了以下问题,特别是与TextBox相关:
哪种方法是实现此行为的最佳方法?
我知道可以使用可选参数,如下所示:
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联盟计划 - 所以我想保持一个功能正常工作,我不会改变对该功能的调用的任何地方,但在一个地方(我正在扩展)我想要指定其他参数.除非我绝对必须,否则我不想创建另一个函数.
当我通过调用执行以下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) asp.net-mvc ×2
php ×2
c# ×1
combobox ×1
common-lisp ×1
dom ×1
function ×1
html ×1
html-table ×1
html5 ×1
javascript ×1
jquery ×1
lisp ×1
memory ×1
modelstate ×1
razor ×1
ruby ×1
sbcl ×1
stdin ×1