Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

RoYaL avatar RoYaL Trainer 6849 Точки

Да има навигационно поле от този тип в полето, предполагам, ако съм разбрал правилно въпроса.

0
TihomirDimov avatar TihomirDimov 161 Точки

Здрасти Роял,

За проекта по ASP.NET MVC съм решил да изградя финансов мениджър, който съдържа информация за лични разходи. Един от моделите ми е сметка или книга с разходи:

namespace PFM.Models.ApplicationModels
{
    public class Book
    {
        [Key]
        public string Id { get; set; }
        public string Name { get; set; }
        public string Currency { get; set; }
        public virtual ICollection<MoneyStream> MoneyStreams { get; set; }
        public virtual ApplicationUser Owner { get; set; }
    }
}

За да създвам т.нар. сметки позлвам стандартните application users от Identity като създвам нови записи ползвайки малко преработен "държавния" метод create в контролера. Добавил съм логика, която сетва owner на съответния book:

        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Create([Bind(Include = "Name,Currency")] Book book)
        {
            var current = User.Identity.GetUserId();
            var owner = db.Users.FirstOrDefault(user => user.Id == current);
            book.Owner = owner;
            if (ModelState.IsValid)
            {
                db.Books.Add(book);
                db.SaveChanges();
                return RedirectToAction("Index");
            }

            return View(book);
        }

Въпросите ми са:

1. Правилен ли е този подхохд за сетване на ownership, тъй като мисля да го ползвам при работа с всички модели. Сетнал съм две роли през Identity и няма нужда да създавам допълнителни модели за потребители

2. Кодът работеше до вчера но днес дава грешка. Опитах да проследя с try/catch но не се получи. Къде бъркам?

"Validation failed for one or more entities. See 'EntityValidationErrors' property for more details."

Line 58:             {
Line 59:                 db.Books.Add(book);
Line 60:                 db.SaveChanges(); (дава грешка тук)
Line 61:                 return RedirectToAction("Index");
Line 62:             }

Целият проект ТУК

0
09/04/2017 12:56:00
TihomirDimov avatar TihomirDimov 161 Точки

Голям лимон съм! Сложил съм Primary key string на два от моделите

string Id
1
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.