MVC-从“创建视图”制作详细信息和编辑视图

时间:2020-07-08 12:25:02

标签: asp.net-mvc asp.net-mvc-4 asp.net-mvc-3 model-view-controller

我需要帮助,我用3个表制作了SQL数据库,并通过实体框架将它们连接到MVC。 我创建了带有下拉列表和标签等的“ CreateView”。当我保存它们时,它们可以正常工作,我在SQL表中检查了所有内容,但是例如当我选择输入的数据并想要更改某些内容时,不知道如何制作EditView。帮助。

控制器

    using AkvizicijeApp_4_2.Models;
    using System;
    using System.Collections.Generic;
    using System.Data.Entity;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;

    namespace AkvizicijeApp_4_2.Controllers
   {
    public class HomeController : Controller
{
    Akvizicije_drop_downEntities db = new Akvizicije_drop_downEntities();


    public ActionResult Index()
    {
        List<Country> CountryList = db.Countries.ToList();
        ViewBag.CountryList = new SelectList(CountryList, "CountryId", "CountryName");

        List<Contact> model = (from k in db.Contacts

                               select k).ToList();

        return View(model);
    }

    public JsonResult GetStateList(int CountryId)
    {
        db.Configuration.ProxyCreationEnabled = false;
        List<State> StateList = db.States.Where(x => x.CountryId == CountryId).ToList();
        return Json(StateList, JsonRequestBehavior.AllowGet);
    }






    public ActionResult Create()

    {
        List<Country> CountryList = db.Countries.ToList();
        ViewBag.CountryList = new SelectList(CountryList, "CountryId", "CountryName");

        return View();

    }






    [HttpPost]
    [ValidateAntiForgeryToken]

    public ActionResult Create(CountryStateContactViewModel csvm)


    {

        if (!ModelState.IsValid)

        {

            return View(csvm);

        }
        Contact model = new Contact() { CountryId = csvm.CountryId, StateId = csvm.StateId, ContactId = csvm.ContactId, ImeOsobe = csvm.ImeOsobe, PrezimeOsobe = csvm.PrezimeOsobe, Komentar = csvm.Komentar, Email = csvm.Email, Aktivan = csvm.Aktivan, kcbr = csvm.kcbr, KucniBroj = csvm.KucniBroj, NazivUlice = csvm.NazivUlice, NazivNaselja = csvm.NazivNaselja, PostanskiBroj = csvm.PostanskiBroj, KontaktBroj = csvm.KontaktBroj };
        db.Contacts.Add(model);

        try
        {
            db.SaveChanges();
        }
        catch (System.Data.Entity.Validation.DbEntityValidationException db)
        {
            Exception raise = db;
            foreach (var validationErrors in db.EntityValidationErrors)
            {
                foreach (var validationError in validationErrors.ValidationErrors)
                {
                    string message = string.Format("{0}:{1}",
                        validationErrors.Entry.Entity.ToString(),
                        validationError.ErrorMessage);

                    raise = new InvalidOperationException(message, raise);
                }
            }
            throw raise;

        }
        return RedirectToAction("Index");





    }
    [HttpGet]
    public ActionResult Edit(int? id)

    {

        Contact kontakt = db.Contacts.Find(id);

        return View("Edit", kontakt);

    }

    [HttpPost]

    public ActionResult Edit
        (Contact model)

    {

        if (!ModelState.IsValid)

        {

            return View("Index", model);

        }

        db.Entry(model).State =

        EntityState.Modified;

        db.SaveChanges();

        return RedirectToAction("Index");

    }
    public ActionResult Details()
    {

        return View();
    }
    [HttpPost]
    public ActionResult Details(int id)

    {

        Contact kontakt = (from c in db.Contacts

                           where c.ContactId == id

                           select c).SingleOrDefault();

        return View(kontakt);



    }
    }
    }

ViewModel

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;

    namespace AkvizicijeApp_4_2.Models
    {
    public class CountryStateContactViewModel
    {
    public int CountryId { get; set; }

    public int StateId { get; set; }

    public int ContactId { get; set; }
    public int PostanskiBroj { get; set; }
    public string NazivNaselja { get; set; }
    public string NazivUlice { get; set; }
    public string KucniBroj { get; set; }
    public string kcbr { get; set; }
    public bool Aktivan { get; set; }
    public string ImeOsobe { get; set; }
    public string PrezimeOsobe { get; set; }
    public string KontaktBroj { get; set; }
    public string Email { get; set; }
    public string Komentar { get; set; }


    }
    }

如果您需要更多信息,请在评论中告诉我,我将编辑问题 我的问题是我不知道如何制作“已创建模型”的“编辑视图”,所以我可以编辑现有模型并将其保存。

0 个答案:

没有答案
相关问题