тип или имя пространства имен 'Сброс' не найден - PullRequest
0 голосов
/ 10 апреля 2020

У меня есть эта ошибка:

Произошла ошибка во время компиляции ресурса, необходимого для обработки этого запроса. Пожалуйста, ознакомьтесь со следующими подробными сведениями об ошибке c и соответствующим образом измените исходный код. Сгенерированный код Одна или несколько ссылок на компиляцию могут отсутствовать.

Если вы видите это в опубликованном приложении, установите для параметра «CopyRefAssembliesToPublishDirectory» значение true в файле проекта, чтобы обеспечить публикацию файлов в каталоге refs.

Не удалось найти тип или имя пространства имен 'Reset' (отсутствует директива using или ссылка на сборку?) Publi c class Views_Security_ResetPassword: global :: Microsoft.AspNetCore. Mvc .Razor .RazorPage Не удалось найти тип или имя пространства имен 'Reset' (отсутствует директива using или ссылка на сборку?) Public global :: Microsoft.AspNetCore. Mvc .Rendering.IHtmlHelper Html {get; приватный набор; }

В локальном режиме работает нормально: ошибок нет, но на опубликованном сервере выдает эту ошибку.

Я использую. net core 3.1

This происходило при вызове \ Security \ ResetPassword Controller, и только в этом случае все остальные контроллеры работают без ошибок.

Очевидно, я сделал это: "установил 'CopyRefAssembliesToPublishDirectory' в true", но это не работает.

Мой код очень прост:

using System;
using System.Net;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Hangfire;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Razor;
using Microsoft.AspNetCore.Mvc.RazorPages;
using RindeGastos.Infrastructure;
using RindeGastos.Models;
using RindeGastos.Security;
using Microsoft.AspNetCore.Authorization;


namespace RindeGastos.Controllers
{


    public class SecurityController : Controller
    {
        private readonly AppDbContext db = null;

        private readonly UserManager<AppIdentityUser> userManager;
        private readonly RoleManager<AppIdentityRole> roleManager;
        private readonly SignInManager<AppIdentityUser> signinManager;

        public SecurityController(
        UserManager<AppIdentityUser> userManager,
        RoleManager<AppIdentityRole> roleManager,
        SignInManager<AppIdentityUser> signinManager,
        AppDbContext db)
        {
            this.userManager = userManager;
            this.roleManager = roleManager;
            this.signinManager = signinManager;
            this.db = db;
        }

        public IActionResult ResetPassword( string userId, string code)
        {
            Reset model = new Reset { UserId = userId, Code = code };

            return View(model);

        }
        [HttpPost]
        [ValidateAntiForgeryToken]
        public async Task<IActionResult> ResetPassword(Reset model)
        {
            if (ModelState.IsValid)
            {
                var user = await signinManager.UserManager.FindByIdAsync(model.UserId);

                if (user != null)
                {
                    var code = WebUtility.UrlDecode(model.Code).Replace(" ","+");
                    IdentityResult result = userManager.ResetPasswordAsync(user, code, model.Password).Result;


                    if (result.Succeeded)
                    {
                        return RedirectToAction("SignIn","Security");
                    }
                    else
                    {
                        ModelState.AddModelError("", "Contraseña no pudo ser cambiada");
                    }
                }
            }
            return View(model);

        }


    }
}

namespace RindeGastos.Models
{
    public class Reset
    {
        public string UserId { get; set; }
        public string Code { get; set; }
        [Required]
        [Display(Name = "Contraseña")]
        public string Password { get; set; }
        [Required]
        [Compare("Password", ErrorMessage = "Contraseñas no coinciden")]
        [Display(Name = "Confirme contraseña")]
        public string ConfirmPassword { get; set; }

    }

    public class Register
    {
        [Required]
        [Display(Name = "Cliente")]
        public string Cliente { get; set; }

        [Required]
        [Display(Name = "Contraseña")]
        public string Password { get; set; }

        [Required]
        [Compare("Password", ErrorMessage = "Contraseñas no coinciden")]
        [Display(Name = "Confirme contraseña")]
        public string ConfirmPassword { get; set; }

        [Required]
        [Display(Name = "Email")]
        [EmailAddress]
        public string Email { get; set; }

        [Required]
        [Display(Name = "Nombre completo")]
        public string FullName { get; set; }
    }
}

Любая помощь?

Спасибо

1 Ответ

0 голосов
/ 11 апреля 2020

Я нашел это! Я опубликовал Views / ResetPassword.cs html. Я удалил эти файлы и все работает нормально.

С уважением

...