我的问题是关于将URL传递给HttpWebRequest而不转义,我搜索了论坛和互联网,但我找不到一个好的解决方案.
我有以下网址:string URL= www.website.com/sub/redirec\t\bs\dd
所以,当我创建这样的uri时:
Uri uri = new Uri(URL);
HttpWebRequest request = (HttpWebRequest) WebRequest.Create(uri);
Run Code Online (Sandbox Code Playgroud)
在这种情况下,在get方法中,我将得到以下URL:www.website.com/sub/redirect%5Ct%5Cbc%5Cdd
此符号"\"将替换为"%5C".什么对我不至关重要?
我可以通过以下方式避免:
Uri uri = new Uri(URL, true); //bool dontEscape
Run Code Online (Sandbox Code Playgroud)
但是这个构造函数已经过时了.如何在不使用过时的情况下获得相同的效果?
我的应用程序有问题,生病尝试通过示例解释,我有一个表单,这个表单存在几个文本框和下拉列表.为了可重用性,我将3个下拉列表合并到一个局部视图中,这个部分视图我加载了@ Html.Action,这个工作正常,当我启动表单时,我看到一切都显示为应该是,虽然我不知道为什么但是那些需要直接下拉列表以红色开始显示,并表示它是必填字段.
但是当我填写所有内容时,我从下拉列表中选择值,然后单击"确定",下拉列表中的值为NULL.
我认为使用代码示例会更容易理解:
主要型号:
public class FormModel
{
[Required]
public string UserName { get; set; }
[Required]
[Display(Name = "Birthdate")]
public DateTime? Birthdate { get; set; }
//This is what i'm talking about, that is not being set, the location
public Location Location { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这是位置类,然后传递给局部视图,通常我认为应该设置,它看起来像这样:
public class Location
{
[Required]
[Display(Name = "Country")]
public string CountryId { get; set; }
[Required]
[Display(Name = "Region")]
public string RegionId { get; set; }
[Required]
[Display(Name = "City")] …Run Code Online (Sandbox Code Playgroud) 我这里有一个小代码:
string attributeValue = "Hello" + Environment.NewLine + " Hello 2";
XElement element = new XElement("test");
XElement subElement = new XElement("subTest");
XAttribute attribute = new XAttribute("key", "Hello");
XAttribute attribute2 = new XAttribute("key2", attributeValue);
subElement.Add(attribute);
subElement.Add(attribute2);
element.Add(subElement);
Console.Write(element.ToString());
Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)
我有一个问题,基本上/ r/n或新行在
属性中转换,但我不想拥有它,我想保留它/ r/n就像我使用这个XML与Microsoft Word文档模板,新的行没有实现,虽然它是多行文字,在word文档中我只得到空格.但没有新线:/
任何人有任何想法?
虽然我在模板中设置了允许多行int属性字段.
我最近开始使用Log Parser可视化界面.
我要解析的日志来自IIS,它们与SharePoint相关.例如,我想知道有多少人访问了特定的网页等.
似乎IIS在不同的文件夹中创建日志(我不知道为什么),并且每天在不同的文件夹中都有一个新的日志文件.
所以我的问题是,是否可以在不同的文件夹中处理所有这些文件?
我知道你可以使用From-clause,放置不同的文件夹,但它太难了,特别是如果将来添加新的文件夹.目标是创建一个将被执行的脚本.
因此,例如在名为LogFIles的文件夹日志中,我有文件夹folder1,folder2,folder3,folder4等,并且在每个文件夹中都有日志文件log1,log2,log3,logN等.
所以我的查询应该是这样的:Select * FROM path/LogFiles/*/*.log但是日志解析器不接受它,那么如何实现呢?
我对MVC 5中的声明有疑问.
所以基本上想象我在DB中有一个注册用户,现在用户将要登录,如下所示:
private async Task SignInAsync(ApplicationUser user, bool isPersistent)
{
AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie);
var identity = await UserManager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie);
// Add more custom claims here if you want. Eg HomeTown can be a claim for the User
var homeclaim = new Claim(ClaimTypes.Country, user.HomeTown);
identity.AddClaim(homeclaim);
AuthenticationManager.SignIn(new AuthenticationProperties() { IsPersistent = isPersistent }, identity);
}
Run Code Online (Sandbox Code Playgroud)
所以在这种情况下,我添加一个新的声明身份,然后我签署此身份.
现在我的问题是:
设置此声明有什么用?(因为如果我需要的话,我也可以从数据库中得到这个,在这个索赔案例中有什么意义)
我如何在代码中使用它?
我有一个小问题需要帮助才能解决:
我有以下情况:
例如:我想选择所有有狗的学生.
我有2张桌子:
students
id name petid
pet
id name
Run Code Online (Sandbox Code Playgroud)
但是它们之间没有指定的外键没有导航属性,虽然我有,但我没有指定它,我不想要我的情况,但我仍然想做一个正确的select语句.
所以使用导航属性我可以像这样查询:
var students = (student s in context.students where s.Pet.Name.Equals("dog").ToList();
Run Code Online (Sandbox Code Playgroud)
我也会避免这样做
var students = context.students
foreach(student s in students)
{
string pet = (from pet p in context.pets where p.Id==s.PetId select p.name).SingleOrDefault();
if(pet=="dog")
{
//do something
}
}
Run Code Online (Sandbox Code Playgroud)
当然,制作导航属性很容易,但对于我的情况,我真的不想这样做.
所以我的问题是我怎样才能简单地进行这种查询,只有一个DB?
我想知道如果用户处于非活动状态会发生什么.
想象一下,用户连接到集线器,建立了连接,但是用户不刷新页面或者一小时内没有做任何事情......无论如何都要保持连接?
在那之后,可以将信息推给他吗?
我有一个关于加密的问题:基本上在我的Web应用程序中我使用了Enterprise Library 5.0,它们有一个加密块,所以基本上在他们提供的配置工具中我已经注册了一个块并生成了一个密钥.这基本上在Web配置中添加了几行,因此稍后在Web应用程序中我可以执行以下操作:
Cryptographer.EncryptSymmetric("RijndaelManaged", text);
Cryptographer.DecryptSymmetric("RijndaelManaged", text);
Run Code Online (Sandbox Code Playgroud)
这将自动加密和正确解密,没有任何问题.
现在我遇到了以下问题,我们正在从Enterprise Library 5.0迁移到Enterprise Library 6.0,在新版本中他们已经删除了Cryptography块,而是建议使用.Net加密.
所以我决定使用Rijndael .Net类用自定义代码替换这一行.我已经使用这个主题作为参考(加密和解密字符串),但用RijndaelManaged创建它,但我有点困惑,关键如何...因为一些数据已加密如何获取和使用相同的密钥能够解密数据并使用它......?
我打开了5.0版的配置管理器以查看密钥但是我可以使用它吗?
任何人都能详细说明这一个吗?
可能重复:
在C#中将流转换为FileStream
我的问题是关于流到FileStream的转换...
基本上我需要这样做来获取文件的名称,因为如果我只有一个对象Stream它没有Name属性,当FileStream做...
那么如何正确地完成它,如何将Stream对象转换为FileStream ......?
另一个问题是这个流来自webResponse.GetResponseStream(),如果我将它转换为FileStream,我将它变为空.基本上我也可以使用流但我需要获取文件名.
我用的是3.5
有任何想法吗?
我有一个关于"has-error"类和复杂对象的问题.
基本上对于单个简单类型,它工作得很好,但对于复杂的对象,它没有.
我有以下代码:
我的验证:
public static MvcHtmlString ValidationErrorFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression, string error)
{
if (HasError(htmlHelper, ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData), ExpressionHelper.GetExpressionText(expression)))
return new MvcHtmlString(error);
else
return null;
}
private static bool HasError(this HtmlHelper htmlHelper, ModelMetadata modelMetadata, string expression)
{
string modelName = htmlHelper.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldName(expression);
FormContext formContext = htmlHelper.ViewContext.FormContext;
if (formContext == null)
return false;
if (!htmlHelper.ViewData.ModelState.ContainsKey(modelName))
return false;
ModelState modelState = htmlHelper.ViewData.ModelState[modelName];
if (modelState == null)
return false;
ModelErrorCollection modelErrors = modelState.Errors;
if (modelErrors == null)
return false;
return (modelErrors.Count …Run Code Online (Sandbox Code Playgroud) c# ×5
asp.net ×1
asp.net-mvc ×1
casting ×1
claims ×1
data-binding ×1
encryption ×1
escaping ×1
filestream ×1
iis ×1
jquery ×1
linq-to-sql ×1
logging ×1
model ×1
ms-word ×1
owin ×1
parsing ×1
sharepoint ×1
signalr ×1
sql ×1
stream ×1
uri ×1
validation ×1
xml ×1