[英]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-首先編寫代碼。 我有一個非常簡單的詢問頁面,它要求: 名稱,電子郵件,主題和消息。 填寫並按下“提交”按鈕后,它應該插入我的數據庫表中,但是清除表格是全部。 我將在下面顯示我的代碼,如果有人可以指出為什么它沒有發送到我的數據庫表,那就太好了! 提前致謝 :)
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.