db.className.Update (модель); не работает и не обновляет базу - PullRequest
0 голосов
/ 11 июля 2019

Я пытаюсь обновить свою базу данных, но она не работает.У меня есть действие по добавлению и редактированию строк моей базы данных.Добавление работает, но обновление не работает.Я использовал db.update() и db.saveChanges для редактирования строк базы данных, но это не работает.Я покажу свою модель, вид и контроллер ниже.Извините, если я любитель.Пожалуйста, скажи мне, что я должен сделать.Спасибо всем.

Это моя модель:

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Threading.Tasks;

namespace WarOfWords.Models
{
    public class storyMode
    {
        [Key]
        public int ID { get; set; }
        [Required]
        public bool isOpen { get; set; }
        [Required]
        public String StoryImage { get; set; }
        [Required]
        public String StroyName { get; set; }
        [Required]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public String StoryDecription { get; set; }
    }
}

, и это моя форма на виду:

@model WarOfWords.Models.storyMode
@using WarOfWords.PublicModel
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@addTagHelper *, WarOfWords
@{
    ViewData["Title"] = "Index";
    Layout = "~/Views/Shared/_panel.cshtml";
}
@Html.AntiForgeryToken()
<form asp-controller="story" asp-action="AddEditStory" method="post" role="form">
    <div class="modal-body form-horizontal">
        <div class="row">
            <div class="form-group myFormGroup hidden">
                <label asp-for="ID" class="col-lg-3 col-sm-3 control-label formLabel"></label>
                <div class="col-lg-6 myInputContainer">
                    <input asp-for="ID" class="form-control formInput" />
                </div>
            </div>
            <div class="form-group myFormGroup">
                <label asp-for="StroyName" class="col-lg-3 col-sm-3 control-label formLabel"></label>
                <div class="col-lg-6 myInputContainer">
                    <input asp-for="StroyName" class="form-control formInput" />
                </div>
            </div>

            <div class="form-group myFormGroup">
                <label asp-for="isOpen" class="col-lg-3 col-sm-3 control-label formLabel"></label>
                <div class="col-lg-6 myInputContainer">
                    <input asp-for="isOpen" class="form-control formInput" />
                </div>
            </div>

            <div class="form-group myFormGroup">
                <label asp-for="StoryImage" class="col-lg-3 col-sm-3 control-label formLabel"></label>
                <div class="col-lg-6 myInputContainer">
                    <input type="file" asp-for="StoryImage" class="form-control formInput" />
                </div>
            </div>

            <div class="form-group myFormGroup">
                <label asp-for="StoryDecription" class="col-lg-3 col-sm-3 control-label formLabel"></label>
                <div class="col-lg-6 myInputContainer">
                    <input asp-for="StoryDecription" class="form-control formInput" />
                    @*<textarea id="editor1" name="editor1" asp-for="StoryDecription" class="form-control  "></textarea>*@
                </div>
            </div>
        </div>
    </div>
</form>

и это мое действие в контроллере:

[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult AddEditStory(storyMode model, int ID)
{
    if (ModelState.IsValid)
    {
        //if true   
        if (ID == 0)
        {
            //insert
            using (var db = _serviceProvider.GetRequiredService<ApplicationDbContext>())
            {
                db.storymodes.Add(model);
                db.SaveChanges();
            }

            return RedirectToAction("Index");
        }
        else
        {
            //update
            using (var db = _serviceProvider.GetRequiredService<ApplicationDbContext>())
            {
                db.storymodes.Update(model);
                db.SaveChanges();
            }

            return RedirectToAction("Index");
        }
    }
    else
    {
        return PartialView("_AddEditStory", model);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...