(Guid.Empty) ...Girdi gösterir yanlış Kimliği bazı varlığın kimliği depolayan bir giriş (gizli) alanı olmasını istediğiniz
Ama bu kodu: bu
@Html.HiddenFor(model => model.Id)
Sonuçları HTML işaretleme: Ben Model.Id != Guid.Empty
eminim beri
<input id="Id" name="Id" type="hidden" value="00000000-0000-0000-0000-000000000000" />
Bu çok garip. HTML'ye @Model.Id
'u enjekte ederek bunu onaylayabilirim. Bu iyi çalışır:
<input type="hidden" id="Id" name="Id" value="@Model.Id" />
Neden View Engine, bu sıfırları doğru Kimlik yerine koymak için karar verir?
Düzenleme: oldukça karmaşıktır ama burada neredeyse aynı davranış gösterir süper basit örnek olduğu için özgün kod eklemek vermedi (o giriş değerindeki Guid.Empty boş bir dize değil kullanır):
Görünüm:
@using MvcApplication4.Models
@model Foo
@using (Html.BeginForm())
{
@Html.HiddenFor(model => model.Id)
@Model.Id
<input type="submit" value="ok" />
}
Denetleyici:
namespace MvcApplication4.Controllers
{
public class HomeController : Controller
{
[HttpGet]
public ActionResult Index()
{
Foo foo = new Foo();
return View(foo);
}
[HttpPost]
public ActionResult Index(Foo foo)
{
foo.Id = Guid.NewGuid();
return View(foo);
}
}
}
Modeli:
using System;
namespace MvcApplication4.Models
{
public class Foo
{
public Guid? Id { get; set; }
}
}
Sorun, işlem sonrası elbette görülebilir.
Modelinizi görebilir miyim? –
Ve denetleyicinin aksiyon kodu – MarkG
görünümüne giriyor Modelin veya eylem yönteminde, Id'in geçersiz kılınması dışında ilginç bir şey yok. – user1068352