denetleyicisindeki farklı bir sonuca sahiptir. Ürünümü varlık çerçevesini kullanarak güncelleştirme konusunda sorun yaşıyorum. Formumu gönderdiğimde, geliştiricinin araçlarından, formun [0] .Id = 3.Ön uçtan gönderilen form verisi, ASP.NET MVC
olduğunu doğrulayabilirim. Ancak, hata ayıklaması yaparken, debug.print, yazdırmayı 0 olarak yazdırır. . İşte
public ActionResult Details(IList<Item> model)
{
if (ModelState.IsValid)
{
Debug.Print(model[0].Id.ToString()); //This prints 0
Debug.Print(model[0].Name);// This prints correctly
Debug.Print(model[0].Size);// This prints correctly
Debug.Print(model[0].RetailPrice.ToString());// This prints correctly
Debug.Print(model[0].IsAvailable.ToString());// This prints correctly
for (int i = 0; i < model.Count(); i++)
{
ndb.Entry(model[0]).State = System.Data.Entity.EntityState.Modified;
ndb.SaveChanges();
}
return RedirectToAction("ProductIndex");
}
return View(model);
}
Herkes bir fikrin neden vardır benim denetleyicisi nedir?
DÜZENLEME:
using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<table>
<thead>
<tr>
<td>Name</td>
<td>Size</td>
<td>Price</td>
<td>Available</td>
</tr>
</thead>
@for (int i = 0; i < Model.Count(); i++)
{
<tr>
@Html.HiddenFor(m => m[i].Id)
@Html.HiddenFor(m => m[i].Name)
@Html.HiddenFor(m => m[i].Size)
@Html.HiddenFor(m => m[i].RetailPrice)
<td>
@Model[i].Name
</td>
<td>
@Model[i].Size
</td>
<td>
@Model[i].RetailPrice
</td>
<td>
@Html.CheckBox("["+i+"].IsAvailable", Model[i].IsAvailable)
</td>
</tr>
}
<tr>
<td>
<input type="submit" value="Save" class="btn btn-default" />
</td>
</tr>
</table>
}
Ve Daha önce de belirtildiği gibi, biçim geliştiricinin aracından teslim Doğru kimliği gösterdi, ancak denetleyici geldiğinde, her zaman ve kimlik olarak bana 0 verir.
Eğer bu alan dışındaki her şey çalışıyorsa, o zaman bir ID'sinin ayarlayıcı olmadığını hissediyorum. 'Id' özelliği veya sadece bir alıcı üzerinde bir ayarlayıcınız var mı? –
"Ayrıntılar" görünüm kodunu ekleyebilir misiniz? Tahminimce "ID" – TheUknown
@ Nava-Prev.Queti görünümünde tanımlı değilsiniz, Id özelliği kullanamazsınız, çünkü snippet'ları kullanıyorum çünkü kaçırmam. –