任何人都可以给我一个关于ModelState在Asp.net MVC中的角色的简洁定义(或者链接到一个).特别是我需要知道在什么情况下打电话是必要的或可取的ModelState.Clear().
有点开放了 ......对不起,我想如果告诉你我在做什么可能会有所帮助:
我在一个名为"Page"的控制器上有一个Edit of Action.当我第一次看到表单更改页面的详细信息时,所有内容都很好地加载(绑定到"MyCmsPage"对象).然后,我单击一个按钮,为MyCmsPage对象的某个字段(MyCmsPage.SeoTitle)生成一个值.它生成正常并更新对象,然后我返回动作结果与新修改的页面对象,并期望相关的文本框(使用渲染<%= Html.TextBox("seoTitle", page.SeoTitle)%>)更新...但是它显示了加载的旧模型的值.
我通过使用来解决它,ModelState.Clear()但我需要知道它为什么/如何工作所以我不只是盲目地做.
的PageController:
[AcceptVerbs("POST")]
public ActionResult Edit(MyCmsPage page, string submitButton)
{
// add the seoTitle to the current page object
page.GenerateSeoTitle();
// why must I do this?
ModelState.Clear();
// return the modified page object
return View(page);
}
Run Code Online (Sandbox Code Playgroud)
ASPX:
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MyCmsPage>" %>
....
<div class="c">
<label for="seoTitle">
Seo Title</label>
<%= Html.TextBox("seoTitle", page.SeoTitle)%>
<input type="submit" value="Generate Seo Title" name="submitButton" />
</div>
Run Code Online (Sandbox Code Playgroud) [背景]我的iis日志中有64个代码,我认为客户端在上传大文件时断开连接.我也得到一些ComExceptions与我收集的相同的状态代码是几乎相同的问题.鉴于这些问题的频率很低,我认为这些问题只是预期而且不是问题,但确实引起了这个问题:
[问题]是否有某个可能的win32状态代码列表; 特别是那些最终会出现在IIS日志中的?
我想将控制器类的默认角色设置为"管理员,内容编辑器"
[Authorize(Roles = "Administrators, Content Editor")]
Run Code Online (Sandbox Code Playgroud)
我通过使用上面的属性装饰控制器来完成此操作.但是,我希望所有人都可以使用一个操作(即"查看").如何重置角色,以便每个人(包括完全未经授权的用户)都可以访问此操作.
注意:我知道我可以用上面的authorize属性来装饰每一个动作的其他动作,但我不想一直这样做.我希望默认情况下所有控制器操作都是不可能的,这样如果有人添加了一个操作,他们就必须做出一个经过深思熟虑的决定,让公众可以使用它.
我一直在阅读当你尝试在项目中实现单元测试时,静态方法,静态类和单例是邪恶的.在遵循TDD范例时,我是否应该忘记它们曾经存在过并且从未再次使用它们,或者有时可以使用它们吗?
我发现很难找到关于如何快速启动和运行WCAT的任何体面的教程.有没有人有一个关于它的正确教程的链接,他们发现在试图掌握WCAT时有用?
"持久"和"持久模式"似乎与重新启动有关,而不是与没有订户接收消息有关.
我希望RabbitMQ在没有订阅者时将消息保留在队列中.当订户上线时,该订户应该收到该消息.RabbitMQ可以实现吗?
代码示例:
服务器:
namespace RabbitEg
{
class Program
{
private const string EXCHANGE_NAME = "helloworld";
static void Main(string[] args)
{
ConnectionFactory cnFactory = new RabbitMQ.Client.ConnectionFactory() { HostName = "localhost" };
using (IConnection cn = cnFactory.CreateConnection())
{
using (IModel channel = cn.CreateModel())
{
//channel.ExchangeDelete(EXCHANGE_NAME);
channel.ExchangeDeclare(EXCHANGE_NAME, "direct", true);
//channel.BasicReturn += new BasicReturnEventHandler(channel_BasicReturn);
for (int i = 0; i < 100; i++)
{
byte[] payLoad = Encoding.ASCII.GetBytes("hello world _ " + i);
IBasicProperties channelProps = channel.CreateBasicProperties();
channelProps.SetPersistent(true);
channel.BasicPublish(EXCHANGE_NAME, "routekey_helloworld", false, false, channelProps, …Run Code Online (Sandbox Code Playgroud) 在Windows上的MongoDB Shell中,如果运行值为的查询
new ISODate('0001-01-01T00:00:00Z')
Run Code Online (Sandbox Code Playgroud)
它实际上似乎在搜索
new ISODate('1901-01-01T00:00:00Z')
Run Code Online (Sandbox Code Playgroud)
如果直接在Mongo Shell中输入"new ISODate('0001-01-01T00:00:00Z')",则可以看到此转换发生时返回ISODate("1901-01-01T00:00:00Z").
奇怪的是,当您使用"新日期"代替"新ISODate"时输入:
new Date('0001-01-01T:00:00:00Z')
Run Code Online (Sandbox Code Playgroud)
它返回正确的ISODate("0001-01-01T00:00:00Z").
两者都应该根据文档返回ISODate,并且在我看来应该采取相同的行为.有谁知道他们为什么不这样做,是否是一个错误或功能?
显然YAGNI和KISS之间存在语法差异,但我看不出它们之间存在任何语义差异.它们真的本质上是一样的吗?
在编写htmlhelper扩展时如果我想为我的htmlhelper扩展方法支持类似结构的ctors,我使用RouteValueDictionary如下:
public static string ListBoxDict(this HtmlHelper htmlHelper,
string name,
object value,
object htmlAttributes)
{
return ListBoxDict(htmlHelper,
name,
value,
((IDictionary<string, object>)
new RouteValueDictionary(htmlAttributes)));
}
Run Code Online (Sandbox Code Playgroud)
我的问题真的是为什么需要RouteValueDictionary......我知道你不能只是投了htmlAttributes到IDictionary<string, object>......虽然我不知道为什么,并且可能是在那里我很困惑.不RouteValueDictionary应该与路由有关,因此与HtmlHelper方法无关?就像我说的那样,我可能会忽略这一点,所以如果有人能告诉我我错过了什么,我会很高兴.
干杯...
编辑:回应丹的回答 - >
我只是按照我在mvc源代码中看到的用于输入助手的内容...
src\SystemWebMvc\Mvc\Html\InputExtensions.cs"它做如下:
public static string TextBox(this HtmlHelper htmlHelper,
string name,
object value,
object htmlAttributes)
{
return TextBox(htmlHelper,
name,
value,
new RouteValueDictionary(htmlAttributes))
}
Run Code Online (Sandbox Code Playgroud)
显然是捷径,但它是一个混蛋还是可以做到的?
有没有人有链接到各种浏览器/平台支持的HTML5功能的确定列表?特别是我需要知道IPhone支持的HTML5的哪些功能.没有自己的http://html5test.com对我来说没有多大用处.
什么是Microsoft .NET Framework用于执行标准验证的正则表达式,该标准验证导致HttpRequestValidationException"当发布HTML或其他可能不安全的内容时,从客户端检测到潜在危险的Request.Form值".
我希望将它的精确副本转换为JavaScript,以便提前通知用户.
我当前的正则表达式(/()| <[^ <>] +> /)很接近,但与.NET不同.
我知道这对于不同的.NET版本可能会有所不同,所以我特别想知道:
asp.net-mvc ×3
asp.net ×1
c# ×1
html-helper ×1
html5 ×1
iis ×1
iis-7 ×1
iphone ×1
javascript ×1
load-testing ×1
modelstate ×1
mongo-shell ×1
mongodb ×1
rabbitmq ×1
regex ×1
roles ×1
singleton ×1
tdd ×1
validation ×1
wcat ×1
yagni ×1