如何使用数据注释对模型进行条件验证?
例如,假设我们有以下模型(Person和Senior):
public class Person
{
[Required(ErrorMessage = "*")]
public string Name
{
get;
set;
}
public bool IsSenior
{
get;
set;
}
public Senior Senior
{
get;
set;
}
}
public class Senior
{
[Required(ErrorMessage = "*")]//this should be conditional validation, based on the "IsSenior" value
public string Description
{
get;
set;
}
}
Run Code Online (Sandbox Code Playgroud)
以下观点:
<%= Html.EditorFor(m => m.Name)%>
<%= Html.ValidationMessageFor(m => m.Name)%>
<%= Html.CheckBoxFor(m => m.IsSenior)%>
<%= Html.ValidationMessageFor(m => m.IsSenior)%>
<%= Html.CheckBoxFor(m => m.Senior.Description)%>
<%= Html.ValidationMessageFor(m => m.Senior.Description)%> …
Run Code Online (Sandbox Code Playgroud) 我正在寻找干净,优雅和智能的解决方案来从所有XML元素中删除名称空间?如何做到这一点的功能?
定义的界面:
public interface IXMLUtils
{
string RemoveAllNamespaces(string xmlDocument);
}
Run Code Online (Sandbox Code Playgroud)
示例XML从以下位置删除NS:
<?xml version="1.0" encoding="utf-16"?>
<ArrayOfInserts xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<insert>
<offer xmlns="http://schema.peters.com/doc_353/1/Types">0174587</offer>
<type2 xmlns="http://schema.peters.com/doc_353/1/Types">014717</type2>
<supplier xmlns="http://schema.peters.com/doc_353/1/Types">019172</supplier>
<id_frame xmlns="http://schema.peters.com/doc_353/1/Types" />
<type3 xmlns="http://schema.peters.com/doc_353/1/Types">
<type2 />
<main>false</main>
</type3>
<status xmlns="http://schema.peters.com/doc_353/1/Types">Some state</status>
</insert>
</ArrayOfInserts>
Run Code Online (Sandbox Code Playgroud)
在我们调用RemoveAllNamespaces(xmlWithLotOfNs)之后,我们应该得到:
<?xml version="1.0" encoding="utf-16"?>
<ArrayOfInserts>
<insert>
<offer >0174587</offer>
<type2 >014717</type2>
<supplier >019172</supplier>
<id_frame />
<type3 >
<type2 />
<main>false</main>
</type3>
<status >Some state</status>
</insert>
</ArrayOfInserts>
Run Code Online (Sandbox Code Playgroud)
解决方案的优先语言是.NET 3.5 SP1上的C#.
如何在ASP.NET视图引擎上生成给定局部视图的HTML 是已知的.
但是如果在razor局部视图上使用此功能则它不起作用,因为异常说部分视图不是从"UserControl"派生的.
如何修复渲染以支持剃刀局部视图?
我需要这个,因为我从这个部分视图生成电子邮件...
更新:
失败的代码(@mcl):
public string RenderPartialToString(string controlName, object viewData)
{
ViewPage viewPage = new ViewPage() { ViewContext = new ViewContext() };
viewPage.Url = this.GetUrlHelper();
string fullControlName = "~/Views/Email/" + controlName + ".ascx";
viewPage.ViewData = new ViewDataDictionary(viewData);
viewPage.Controls.Add(viewPage.LoadControl(fullControlName));
StringBuilder sb = new StringBuilder();
using (StringWriter sw = new StringWriter(sb))
{
using (HtmlTextWriter tw = new HtmlTextWriter(sw))
{
viewPage.RenderControl(tw);
}
}
return sb.ToString();
}
Run Code Online (Sandbox Code Playgroud) 如何相对缩放用户控件的大小,如图像(在图像编辑器中).
示例(100%):
替代文字http://stegnar.com/pic/normalPicture.png
缩小UC(70%):
替代文字http://stegnar.com/pic/normalPicture70percent.png
我在图片编辑器中实现了这一点,但我想在WPF中.:)我需要这个来调整我的应用程序到不同的屏幕分辨率,而没有任何隐藏(没有滚动条).
我有一个cordova v6.0.0和一个iOS 7.1.2的测试设备
根据我的阅读,cordova v4.0.0已更新为使用最低部署目标iOS 8
我可以做任何事情,无论是进出Xcode,还是强制将其部署到我的iOS 7.1.2测试设备上?
假设我们有一个带有搜索输入表单的网页,它通过HTTP GET向服务器提交数据.这意味着服务器通过查询字符串接收搜索数据.用户可以看到URL,也可以自己初始化此请求(通过URL +查询字符串).
我们都知道.这是个问题.
如果此网页通过HTTP POST向服务器提交数据怎么办?用户如何自己初始化此请求?
我知道如何捕获HTTP POST(这就是网络嗅探器的用途),但我如何在C#代码中自己模拟这个HTTP POST请求呢?
如何在MySQL存储过程中拆分逗号分隔文本(ID列表)以在SQL"IN"语句中使用结果.
SELECT * FROM table WHERE table.id IN (splitStringFunction(commaSeparatedData, ','));
Run Code Online (Sandbox Code Playgroud) 要在Azure存储中实现相对简单的简单分页:使用Windows Azure表存储进行分页.这可以使用延续令牌功能来实现.
但.
这只是严重分页的开始.第一个问题是排序.您无法在Azure表中执行OrderBy.什么是解决这个问题的最佳解决方案?必须对页面进行排序,这就是事实.
第二个问题,当来到分页时,要知道总页数,只有连续令牌功能这是不可能的.要在每个页面上执行".Count()"在我看来效率非常低(例如,因为分区可能位于多个服务器上).
第三个问题是,与第二个问题相关,即使你可以计算你有多少页,如何将计数页面"连接"到实际的连续标记?这对我来说是最大的谜.如何从特定的表行继续?
如果可以提供正确的解决方案,我会非常高兴.我必须承认我也有一个,我会在下面的答案之一中写下来.
那么,问题是如何在Azure Compute Emulator上配置Web角色以便像在本地IIS上一样工作?我的意思是,web角色有固定的URL(就像你可以在项目属性中设置"使用本地IIS Web服务器"并设置固定的URL)?
如何将Azure Compute Emulator设置为在静态URL或至少在静态端口上工作?
真的很烦人,每次我启动web角色我都有不同的url(端口)!
在EF eager中,加载相关实体很容易.
但是在使用table-per-type模型加载数据时,我遇到了包括继承实体在内的困难.
这是我的模特:
实体:
ArticleBase
(基础文章实体)
ArticleSpecial
(继承自ArticleBase
)UserBase
(基本用户实体)
UserSpecial
(继承自UserBase
)Image
关系如图所示(省略许多列): alt text http://i48.tinypic.com/5x4kdc.jpg
实际上,我的用户总是类型UserSpecial
,因为UserBase
在另一个应用程序中使用,因此我们可以共享凭据.这是我有两个单独的表的唯一原因.UserBase
表格不能以任何形式或形式进行更改,因为其他应用程序会破坏.
我怎么想加载ArticleSpecial
既CreatedBy
和EditedBy
设置,使两者都是类型UserSpecial
(定义Image
关系)?
我尝试过这些选项(虽然不成功):
1. 使用lambda表达式:
context.ArticleBases
.OfType<ArticleSpecial>()
.Include("UserCreated.Image")
.Include("UserEdited.Image");
Run Code Online (Sandbox Code Playgroud)
在这种情况下,问题是,无论是CreatedBy
和EditedBy
相关的UserBase
,没有定义Image
导航.所以我应该以某种方式将这两个UserSpecial
类型转换为:
context.ArticleBases
.OfType<ArticleSpecial>()
.Include("UserCreated<UserSpecial>.Image")
.Include("UserEdited<UserSpecial>.Image");
Run Code Online (Sandbox Code Playgroud)
但当然使用泛型Include("UserCreated<UserSpecial>.Image")
不起作用.
2. 我尝试过使用LINQ查询
var results = from articleSpecial in …
Run Code Online (Sandbox Code Playgroud) c# ×5
asp.net-mvc ×2
azure ×2
architecture ×1
cordova ×1
forms ×1
http-post ×1
iis ×1
inheritance ×1
ios ×1
join ×1
mysql ×1
razor ×1
scale ×1
sql ×1
validation ×1
wpf ×1
xml ×1