我使用ASP.NET Identity 2.0和MVC.我需要在视图中记录用户的姓名,姓氏,电子邮件等.怎么能得到它?我可以得到@ User.Identity,但没有我的用户类的属性.
//in my view, i need here my ApplicationUser class
<div>
@User.Identity.Name
</div>
//ApplicationUser class
public class ApplicationUser : IdentityUser<int, CustomUserLogin, CustomUserRole,
CustomUserClaim>
{
public ApplicationUser()
{
this.CreatedDate = DateTime.Now;
}
public DateTime CreatedDate { get; set; }
public string Name { get; set; }
public string Surname { get; set; }
public string TaxOffice { get; set; }
}
Run Code Online (Sandbox Code Playgroud) 我使用 ASP.NET Identity .. 我想将会话超时设置为无限制或最大值。我试过一些东西,但没有效果。注意:我使用共享主机。谢谢你。
//web.config
<system.web>
<customErrors mode="Off" />
<httpRuntime targetFramework="4.5" />
<authentication mode="Forms" />
<sessionState timeout="500000" />
</system.web>
//asp.identiyt config
public void ConfigureAuth(IAppBuilder app)
{
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
ExpireTimeSpan = TimeSpan.FromDays(365),
LoginPath = new PathString("/user/login"),
Provider = new CookieAuthenticationProvider
{
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser, int>
(
validateInterval: TimeSpan.FromDays(365),
regenerateIdentityCallback: (manager, user) => user.GenerateUserIdentityAsync(manager),
getUserIdCallback: (id) => (Int32.Parse(id.GetUserId()))
)
}
});
}
Run Code Online (Sandbox Code Playgroud) 我使用ASP.NET MVC开发了一个Web应用程序。我的路线有问题。
我需要这样的路线。 http://localhost/content-name/23.html
我为此定义了一条路线
//i need this route but it's not work
routes.MapRoute(
"GetContent",
"{sefLink}/{contentId}.html",
new { controller = "Content", action = "GetContent" },
new[] { "CanEcomm.Controllers" });
Run Code Online (Sandbox Code Playgroud)
但是这条路线不起作用。IIS正在向我显示404页面。当我删除.html扩展名时,路由可行。
//this route is working. i just remove ".html" extension
routes.MapRoute(
"GetContent",
"{sefLink}/{contentId}",
new { controller = "Content", action = "GetContent" },
new[] { "CanEcomm.Controllers" });
Run Code Online (Sandbox Code Playgroud)
我该如何解决?谢谢
我使用ASP .NET MVC和Ninject.我需要参数名称的条件绑定.我怎样才能做到这一点?
private readonly ITemplateProvider _msgTemplate;
private readonly ITemplateProvider _mailTemplate;
public OrderLineManager(ITemplateProvider msgTemplate,ITemplateProvider mailTemplate)
{
_msgTemplate = msgTemplate;
_mailTemplate = mailTemplate;
}
//ninject kernel ,
//i need for msgTample MessageTemplateProvider
//i need for mailTemplate MailTemplateProvider
_kernel.Bind<ITemplateProvider>()
.To<MessageTemplateProvider>()
.When(request => request.Target.Member.Name.Equals("msgTemplate"));
_kernel.Bind<ITemplateProvider>()
.To<MailTemplateProvider>()
.When(request => request.Target.Member.Name.Equals("mailTemplate"));
Run Code Online (Sandbox Code Playgroud) 我使用ASP.NET MVC。如何在我的视图模型中验证字符串数组。因为“ Required”属性不适用于字符串数组。
[DisplayName("Content Name")]
[Required(ErrorMessage = "Content name is required")]
public string[] ContentName { get; set; }
Run Code Online (Sandbox Code Playgroud) 我将Handlebars .NET用于邮件模板,因此我在服务器端宽度ASP.NET MVC上生成模板。我需要这样的比较。但这行不通吗?我能做什么?
//Product.ProdType is a enum property
{{#if (Product.ProdType=='BlaBlaBla')}}
<p>This is a test</p>
{{/if}}
Run Code Online (Sandbox Code Playgroud) 我在ASP.NET MVC项目中使用AllowHtml属性,但不适用于视图模型中的数组。如果该属性不是数组,则该属性有效。现在,我无法验证我的html标签。
有什么建议吗?谢谢
[AllowHtml]
public string[] ContentText { get; set; }
Run Code Online (Sandbox Code Playgroud)
错误:
A potentially dangerous Request.Form value was detected from the client
Run Code Online (Sandbox Code Playgroud) 我将ASP.NET应用程序迁移到ASP.NET Core。
工作正常,但
调用我的CategoryController的CheckIsCustomPage操作,因此我的应用程序当然会引发异常。
我能做什么?
app.UseMvc(routes =>
{
routes.MapRoute(
name: "Category",
template: "{sefLink}/{pageNumber}",
defaults: new { controller = "Category", action = "CheckIsCustomPage", pageNumber = "1" }
);
routes.MapRoute(
name: "Ajax",
template: "ajax/{action}",
defaults: new { controller = "Ajax" });
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
Run Code Online (Sandbox Code Playgroud) 我尝试将数据获取到@DataSrcCatIds
变量。但是 SQL Server 抛出错误
ASSIGNMENT 语句中不允许使用 FOR XML 子句
我用 Google 搜索并找到了解决方案,但该解决方案不使用 CTE。我必须使用公用表表达式对其进行 DataSrcCatIds 。
CTE有什么解决办法吗?
谢谢
DECLARE @DataSrcCatIds AS NVARCHAR(MAX)
;WITH CatTree (CategoryId ) AS
(
SELECT CategoryId FROM Categories
WHERE SefLink='my-link'
UNION ALL
SELECT ct.CategoryId
FROM Categories ct
INNER JOIN CatTree AS parent ON parent.CategoryId = ct.ParentCatId
)
SELECT @DataSrcCatIds = DataSrcCatIds + ','
FROM Categories c
JOIN CatTree ct ON ct.CategoryId = c.CategoryId
FOR XML PATH ('')
SET @DataSrcCatIds = LEFT(@DataSrcCatIds, LEN(@DataSrcCatIds) - 1)
Run Code Online (Sandbox Code Playgroud) asp.net-mvc ×7
c# ×6
asp.net ×4
asp.net-core ×1
attributes ×1
mustache ×1
ninject ×1
routes ×1
session ×1
sql ×1
sql-server ×1
t-sql ×1
validation ×1