扩展此问题的答案: 在ASP.NET Core Identity UI中更改路由?
当想要自定义URL时,Javier建议使用以下选项之一:
- 使用默认UI的scaffolding元素并自行进行所有必要的自定义.
- 使用重定向规则将旧路由指向新路由.
- 根本不要使用默认UI.
从新的ASP.NET Core 2.1 MVC项目,使用身份验证:个人用户帐户设置,您如何不使用默认UI?它似乎默认安装在Identity Core上.
创建项目后,删除默认UI剃刀页面的方法是什么,仍然使用Identity Core?
我可以删除该/Identity/区域,然后创建我自己的区域AccountController吗?
我有一个加载旋转动画.gif,在页面提交后显示,并且一切正常.但是,如果您提交表单,然后单击浏览器上的后退箭头,它将显示上一页,加载.gif仍然可见.
我设置它,以便在页面加载时隐藏加载gif.但是,如果您只是单击浏览器中的后退按钮(如firefox),它就不会完全重新加载页面,动画gif仍然可见.
有没有办法在点击浏览器后退按钮时隐藏加载.gif文件?
这是我的jquery代码:
<!-- inline scripts related to this page -->
<script type="text/javascript">
// Show spinning animation on form submit.
$("#filter-results-form").submit(function (e) {
// Check for form errors before displaying loading gif.
if ($('.field-validation-error').length > 1) {
$("#loading-image").hide();
} else {
$("#loading-image").show(0); // show animation
}
return true; // allow regular form submission
});
</script>
Run Code Online (Sandbox Code Playgroud)
这是我的相关html:
<div>
<button type="submit"><i class="fa fa-search"></i> Search</button>
<span class="loading collapse" id="loading-image"><img src="@Url.Content("~/content/img/layout/ajax-loader.gif")"></span>
</div>
Run Code Online (Sandbox Code Playgroud)
我已经尝试过这个解决方案,但它不起作用:
jQuery(function ($) {
$("#loading-image").hide(); // Hide animation on page load. …Run Code Online (Sandbox Code Playgroud) 我正在开发一个必须打印包含Font Awesome图标的页面的网站.问题是当你去打印时,Font Awesome图标不会以彩色打印.
在浏览器中,它们以彩色显示,但在打印页面时,图标为纯黑色.反正有没有让Font Awesome图标以彩色打印?也许通过带有@media print {}的CSS?
编辑:另外,我在firefox中开发.
问题:
使用ASP.NET Core 2.1 MVC项目,使用浏览器后退按钮返回到表单(表单POST无法通过服务器端验证)后,我收到以下浏览器错误消息:
Firefox中的错误消息:
文件已过期
该文档不再可用。
所请求的文档在Firefox的缓存中不可用。
- 为了安全起见,Firefox不会自动重新请求敏感文档。
- 单击“重试”以从网站重新请求文档。
Chrome中的错误消息:
确认重新提交表单
此网页需要您之前输入的数据才能正确显示。您可以再次发送此数据,但是这样做将重复此页面先前执行的所有操作。
按下重新加载按钮以重新提交加载页面所需的数据。
ERR_CACHE_MISS
重现步骤:
笔记:
它似乎与为防伪系统禁用了响应缓存(https://docs.microsoft.com/en-us/aspnet/core/performance/caching/middleware?view=aspnetcore-2.1)有关。
用于生成安全令牌以防止跨站点请求伪造(CSRF)攻击的Antiforgery系统将Cache-Control和Pragma标头设置为no-cache,这样就不会缓存响应。有关如何为HTML表单元素禁用防伪令牌的信息,请参见ASP.NET Core防伪配置。
我可以确认,如果@Html.AntiForgeryToken()从HTML表单中删除它,浏览器错误消息就会消失。
在使用的ASP.NET MVC5中,这不是问题AntiForgeryToken。
题:
在ASP.NET Core 2.1中,是否有人找到一种继续使用Antiforgery系统并防止使用浏览器后退按钮时显示此浏览器错误消息的方法?
这是我的POST操作:
[HttpPost]
[ValidateAntiForgeryToken]
[ActionName("Contact-Form")]
public async Task<ActionResult> ContactForm(ContactFormViewModel cfvm)
{
if (ModelState.IsValid)
{
// << Handling of the form submit code here >>
TempData["Success"] = string.Format("Your contact request was submitted successfully!");
return RedirectToAction("Contact-Form-Success");
}
TempData["Error"] = "The …Run Code Online (Sandbox Code Playgroud) 而不是使用如下代码中所示的Switch语句,是否有另一种方法来检查是否foo.Type与类中的任何常量匹配Parent.Child?
预期的目标是遍历所有常量值以查看是否foo.Type匹配,而不是必须将每个常量指定为a case.
家长班:
public class Parent
{
public static class Child
{
public const string JOHN = "John";
public const string MARY = "Mary";
public const string JANE = "Jane";
}
}
Run Code Online (Sandbox Code Playgroud)
码:
switch (foo.Type)
{
case Parent.Child.JOHN:
case Parent.Child.MARY:
case Parent.Child.JANE:
// Do Something
break;
}
Run Code Online (Sandbox Code Playgroud) 使用C#从相对URL字符串获取特定参数的最有效方法是什么?
例如,如何ACTION从以下相对URL字符串中获取参数的值:
string url = "/page/example?ACTION=data&FOO=test";
Run Code Online (Sandbox Code Playgroud)
我已经尝试过使用:
var myUri = new Uri(url, UriKind.Relative);
String action = HttpUtility.ParseQueryString(myUri.Query).Get("ACTION");
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误:
相对URI不支持此操作.
针对 上托管的 Web 应用程序Microsoft Azure,是否有办法防止mydomain.azurewebsites.netURL 被搜索引擎索引?我计划使用网络应用程序作为临时网站,并且不希望它意外被索引。
我知道我可以将robots.txt所有内容设置为 的文件添加到项目中no-index,但我不想意外地将其发布到生产站点(或者忘记将其发布到登台网站)。
Azure 中是否有设置可以阻止“.azurewebsites.net”域被编入索引?或者,如果该robots.txt文件是唯一的方法,您如何保持其组织robots.txt,以便使用ASP.NET Core.
如果第一个字段小于 0,有没有办法映射到第二个字段?
例如,如果您要映射带有列foo和的 csv 文件bar:
Map(m => m.Price).Name("foo");
Run Code Online (Sandbox Code Playgroud)
如果该列foo等于 0,我们是否可以映射Price到该bar列的值。
在Startup.cs文件中,请考虑以下事项:
public void ConfigureServices(IServiceCollection services)
{
// Irrelevant code removed
services.AddHttpsRedirection(options =>
{
options.RedirectStatusCode = StatusCodes.Status301MovedPermanently;
});
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
// Irrelevant code removed
app.UseHttpsRedirection();
app.UseRewriter(new RewriteOptions()
.AddRedirectToWwwPermanent()
.AddRedirectToHttpsPermanent()
);
}
Run Code Online (Sandbox Code Playgroud)
据我所知,我必须使用重写器来设置AddRedirectToWwwPermanent.我的问题是,我应该同时使用app.UseHttpsRedirection()和AddRedirectToHttpsPermanent()吗?或者,如果他们做同样的事情,我应该删除哪些?
我只是想确保我正确地重定向到Https,与Wwww重定向一起使用.
当我将网站部署为Azure Web App时,我的AddRedirectToWwwPermanent()重写规则是添加“ www”。到默认天蓝色URL的前面,例如www.myproject.azurewebsites.net。在子域中使用“ www”会导致页面无法加载。
有没有一种方法可以跳过AddRedirectToWwwPermanent()专门针对*.azurewebsites.netURL 的重写规则?
我目前在使用Rewriter Startup.cs:
app.UseRewriter(new RewriteOptions()
.AddRedirectToWwwPermanent()
);
Run Code Online (Sandbox Code Playgroud)
或者,是否可以将*.azurewebsites.netURL 重定向到我自己的自定义域?我已经尝试了以下方法,但是不起作用:
app.UseRewriter(new RewriteOptions()
.AddRedirect(@"myproject.azurewebsites.net", @"www.example.com", StatusCodes.Status301MovedPermanently)
.AddRedirectToWwwPermanent()
);
Run Code Online (Sandbox Code Playgroud)
更新,也尝试过:
app.UseRewriter(new RewriteOptions()
.AddRedirect(@"https://myproject.azurewebsites.net", @"https://www.example.com", StatusCodes.Status301MovedPermanently)
.AddRedirectToWwwPermanent()
);
Run Code Online (Sandbox Code Playgroud) 在ASP.NET Core 2.1中,任何人都可以解释其CookieAuthenticationOptions.LogoutPath作用吗?根据说明文件:
如果提供了LogoutPath处理程序,则将根据ReturnUrlParameter重定向到该路径的请求。
但我什至不认为该句子具有适当的语法,因此我对含义感到困惑。
在中Startup.cs,我将其设置为:
// Added after AddMvc()
services.ConfigureApplicationCookie(options =>
{
options.LogoutPath = $"/account/logout";
});
Run Code Online (Sandbox Code Playgroud)
什么时候叫这个?
我是否需要为此GET在AccountControllerView中创建相应的动作?还是POST采取行动?例如:
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Logout()
{
await _signInManager.SignOutAsync();
return RedirectToAction("Index", "Home");
}
Run Code Online (Sandbox Code Playgroud)我的注销操作是否需要注销用户,或者届时他们是否已经注销?
在C#中,如果一个List()对象不为null,那是否也意味着它Count总是大于0?
例如,如果您有一个intList类型的对象,List<int>以下代码是多余的?
if (intList != null && intList.Count > 0) {
// do something
}
Run Code Online (Sandbox Code Playgroud) c# ×8
asp.net ×5
asp.net-core ×4
azure ×2
css ×2
html ×2
.net ×1
asp.net-mvc ×1
csv ×1
csvhelper ×1
font-awesome ×1
fonts ×1
html5 ×1
javascript ×1
jquery ×1
list ×1
loops ×1
parsing ×1
printing ×1
razor-pages ×1
regex ×1