1
目標: フォームを記入するウェブサイトを表示し、送信ボタンをクリックする前に検証を有効にすることもできます。ScaffoldColumn(false)が機能しません
問題: をビューに使用するとコード[ScaffoldColumn(false)]
が機能しません。
質問: どうすればよいですか?
// Fullmetalboy
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master"
Inherits="System.Web.Mvc.ViewPage<MvcMusicStore.Models.Order>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Address and Payment
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<% using (Html.BeginForm()) {%>
<h2>Address and Payment</h2>
<fieldset>
<legend>Shipping Information</legend>
<%: Html.EditorForModel() %>
</fieldset>
<input type="submit" value="Submit Order" />
<% } %>
</asp:Content>
private BokButikEntities _myBokButikEntities = new BokButikEntities();
//
// GET: /Checkout/
public ActionResult AddressAndPayment()
{
return View();
}
//
// POST: /Checkout/AddressAndPayment
[HttpPost]
public ActionResult AddressAndPayment(FormCollection values)
{
var order = new Order();
TryUpdateModel(order);
try
{
var cart = ShoppingCart.GetCart(this.HttpContext);
order.Anvandarnamn = User.Identity.Name;
order.OrderDatum = DateTime.Now;
order.TotalKostnad = cart.KalkyleraTotalKostnad();
//Save Order
_myBokButikEntities.AddToOrders(order);
_myBokButikEntities.SaveChanges();
//Process the order
cart.CreateOrder(order);
return RedirectToAction("Complete", new { id = order.OrderID });
}
catch
{
//Invalid - redisplay with errors
return View(order);
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;
namespace BokButik1.Models.Validation
{
[MetadataType(typeof(OrderMetadata))]
public partial class Order
{
// Validerar data
[Bind(Exclude = "OrderID")]
public class OrderMetadata
{
[Required(ErrorMessage = "Förnamn saknas")]
[DisplayName("Förnamn")]
[StringLength(50)]
public object Fornamn { get; set; }
[Required(ErrorMessage = "Efternamn saknas")]
[DisplayName("Efternamn")]
[StringLength(50)]
public object Efternamn { get; set; }
[Required(ErrorMessage = "Mobilnummer saknas")]
[DisplayName("Mobilnummer")]
public int Mobilnummer { get; set; }
[Required(ErrorMessage = "Gatuadress saknas")]
[DisplayName("Gatuadress")]
[StringLength(50)]
public object Gatuadress { get; set; }
[Required(ErrorMessage = "Postnummer saknas")]
[DisplayName("Postnummer")]
public object Postnummer { get; set; }
[Required(ErrorMessage = "Ort saknas")]
[DisplayName("Ort")]
[StringLength(50)]
public object Ort { get; set; }
[ScaffoldColumn(false)]
public object OrderID { get; set; }
[ScaffoldColumn(false)]
public object OrderDatum { get; set; }
[ScaffoldColumn(false)]
public object TotalKostnad { get; set; }
[ScaffoldColumn(false)]
public object Anvandarnamn { get; set; }
}
}
}
をしないでしょう。 Web.Mvc.ViewPage "または" Inherits = "System.Web.Mvc.ViewPage "ですが、残念なことに同じことが起こります。 –
@FullmetalBoy私はあなたがオブジェクト型を使用している可能性があると思う、オブジェクトの代わりにいくつかの他の型を使用してみてください – Omu