簡體   English   中英

ASP.NET MVC Web應用程序-當我單擊“提交”時,我的查詢頁面沒有發送到數據庫,我看不到為什么

[英]ASP.NET MVC Web Application - My enquiry page isn't sending to my DB when I hit submit, I can't see why

我正在使用ASP.NET MVC為學校的一個班級創建Web應用程序。 對於我的數據庫,我正在使用Entity Framework-首先編寫代碼。 我有一個非常簡單的詢問頁面,它要求: 名稱,電子郵件,主題和消息。 填寫並按下“提交”按鈕后,它應該插入我的數據庫表中,但是清除表格是全部。 我將在下面顯示我的代碼,如果有人可以指出為什么它沒有發送到我的數據庫表,那就太好了! 提前致謝 :)

這也是顯示查詢表的屏幕截圖,如果有幫助的話; DBTables

ModelContext-

namespace SDP_Project.DAL
{
public class SDP_ProjectContext:DbContext

{
    public SDP_ProjectContext() : base("SDP_Project")
    {

    }

    public DbSet<TripType> TripTypes { get; set; }

    public DbSet<Customer> Customers { get; set; }

    public DbSet<Trip> Trips { get; set; }

    public DbSet<CustomerOrder> CustomerOrders { get; set; }

    public DbSet<OrderedProduct> Orderedproducts { get; set; }

    public DbSet<Cart> Carts { get; set; }

    public DbSet<Enquiry> Enquiries { get; set; }

}
}

EnquiryController-

using System;  
using SDP_Project.ViewModels;
using SDP_Project.Models;   
using System.Web.Mvc;

namespace SDP_Project.Controllers
{
public class EnquiryController : Controller
{
    [HttpGet]
    public ActionResult Index()
    {
        return View();
    }
    [HttpPost]
    public ActionResult Index(Enquiry vm)
    {
        if (ModelState.IsValid)
        {
            EnquiryAdd enquiryAdd = new EnquiryAdd();
            try
            {
                enquiryAdd.Add(vm);
                ModelState.Clear();
                ViewBag.Message = "Thank you for Contacting us ";
            }
            catch (Exception ex)
            {
                ModelState.Clear();
                ViewBag.Message = $" Sorry we are facing Problem here {ex.Message}";
            }
        }

        return View();
    }
    public ActionResult Error()
    {
        return View();
    }
}
}

詢價ViewModel-

using System.ComponentModel.DataAnnotations;


namespace SDP_Project.ViewModels
{
public class Enquiry
{
    [ScaffoldColumn(false)]
    public int Id { get; set; }
    [Required]
    [StringLength(20, MinimumLength = 5)]
    public string Name { get; set; }
    [Required]
    [EmailAddress]
    public string Email { get; set; }
    [Required]
    public string Subject { get; set; }
    [Required]
    public string Message { get; set; }
}
}

查詢添加模型-

using SDP_Project.DAL;
using SDP_Project.ViewModels;

namespace SDP_Project.Models
{
public class EnquiryAdd
{
    SDP_ProjectContext db = new SDP_ProjectContext();

    public void Add(Enquiry newEnquiry)
    {
        SDP_Project.ViewModels.Enquiry enquiry = new  SDP_Project.ViewModels.Enquiry();
        enquiry.Name = newEnquiry.Email;
        enquiry.Email = newEnquiry.Name;
        enquiry.Subject = newEnquiry.Subject;
        enquiry.Message = newEnquiry.Message;

        db.Enquiries.Add(enquiry);
        db.SaveChanges();
    }
}
}

查詢視圖-

@model SDP_Project.ViewModels.Enquiry

@{
ViewData["Title"] = "Home Page";
}
<script src="~/lib/jquery-validation/dist/jquery.validate.min.js"></script>
<script src="~/lib/jquery-validation-   unobtrusive/jquery.validate.unobtrusive.min.js"></script>
<div>
<div class="col-md-6">
    <div>
        @if (ViewBag.Message == null)
        {
        <div>
            <form method="post">
                <div class="form-group">
                <p></p>
                <p></p>
                    <label asp-for="Name">Name</label>
                    <input asp-for="Name" class="form-control" />
                    <span asp-validation-for="Name"
                          class="text-muted"></span>
                </div>
                <div class="form-group">
                    <label asp-for="Email">Email</label>
                    <input asp-for="Email" class="form-control" />
                    <span asp-validation-for="Email"
                          class="text-muted"></span>
                </div>
                <div class="form-group">
                    <label asp-for="Subject">Subject</label>
                    <input asp-for="Subject" class="form-control" />
                    <span asp-validation-for="Subject"
                          class="text-muted"></span>
                </div>
                <div class="form-group">
                    <label asp-for="Message">Message</label>
                    <textarea rows="5" cols="15"
                              asp-for="Message" class="form-control">    </textarea>
                    <span asp-validation-for="Message"
                          class="text-muted"></span>
                </div>
                <div>
                    <button type="submit"
                            class="btn btn-success">
                        Send
                    </button>
                </div>

            </form>
        </div>
        }
    </div>

    <div>
        <div>
            @if (ViewBag.Message != null)
        {
        <div>@ViewBag.Message</div>


            }
        </div>
    </div>
</div>

</div>

您可以查看[this] [1]。

[1]: 如何在Razor中編寫“ Html.BeginForm” 嘗試使用MVC幫助程序創建正確設置控制器和操作的表單

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM