SORU
26 Ocak 2010, Salı


"Id alanı için gereken" Oluştur doğrulama mesajı; Kimliği için [Gerekli]ayarlanmamış

Bu varlık ASP.NET stil Oluşturma eylemi MVC 2 kullanarak oluşturmaya çalışırken oluyor.

Bu POCO aşağıdaki özelliklere sahiptir:

public int Id {get;set;}

[Required]
public string Message {get; set}

Varlığın yaratılışı, Kimliği otomatik olarak ayarlanır, bu eylem Oluşturmak için gerek yok.

Bu ModelState "İd alanı gereklidir", ama o kadar. olacak şekilde ayarlamak yok diyor Otomatik bir şey var mı?

DÜZENLEME Nedeni Ortaya çıktı

Sorunun nedeni diyor nerede altında yorumlar (şerefe Paul) Paul Speranza ile Brad Wilson ile cevap verdi

İçin bir değer sağlamaya ... KİMLİK, sen olduğunu bilmiyordum. Varsayılan rota veri. ("{denetleyicisi} {action}//{id}"),rota ve varsayılan değer boştur bir int için geçerli değil dize. [Bağlama] özniteliği kullanın KİMLİĞİ dışlamak için eylem parametresi. Benim varsayılan rota: yeni { denetleyicisi = ""Action = "" id = " "Düzenlemek müşteri } // Parametre varsayılan

- Model tekniği Güncelleme DÜZENLEYİN

Aslında TryUpdateModel ve hariç parametre dizisi ile eşlik eden kullanarak tekrar yaptığım şekilde değişti.

    [HttpPost]
    public ActionResult Add(Venue collection)
    {
        Venue venue = new Venue();
        if (TryUpdateModel(venue, null, null, new[] { "Id" }))
        {
            _service.Add(venue);
            return RedirectToAction("Index", "Manage");
        }
        return View(collection);
    }

CEVAP
27 Ocak 2010, ÇARŞAMBA


Öznitelik ekleyebilirsiniz:

 [Bind(Exclude = "Id")] 

yöntem parametre yerine sınıf, dışlama ve hala zorunlu olacak düzenleyebilirsiniz yolda oluşturun:

public ActionResult Create([Bind(Exclude = "Id")] User u)
{
    // will exclude for create
}

public ActionResult Edit(User u)
{
    // will require for edit
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ASUS

    ASUS

    22 EKİM 2005
  • Fr. Eckle Studios

    Fr. Eckle St

    29 Kasım 2006
  • Hey Nadine

    Hey Nadine

    24 Kasım 2006