我遇到模型綁定問題,我的id是Sitecore.Data.ID類型。提交表單後,所有其他字段都會綁定正確的數據,但是我的ID會更改爲其他內容。模型綁定在通過表單提交時無法正常工作Sitecore.Data.ID類型
例如,在表單中,隱藏字段'id'的值爲2fb3169c-8b3f-4618-ac78-6170fd0eb297
,在提交給CartController後,該值變爲{{68CE2980-7611-422B-96E1-29C4CC0132D5}}
或{{82F7914C-34D6-4009-B301-53C1499774A3}}
或其他。
我認爲它是隨機的。我不知道我錯在哪裏。
我有這樣的型號:
[SitecoreType(AutoMap = true,Cachable = true)]
public class Book : Item
{
public virtual ID Id { get; set; }
[SitecoreField(IsRequired = true)]
public virtual string Name { get; set; }
[SitecoreField(IsRequired = true)]
public virtual double Price { get; set; }
[SitecoreField(IsRequired = true)]
[StringLength(50, MinimumLength = 5)]
public virtual string Description { get; set; }
}
這是我的看法:
@model Book
using (Html.BeginRouteForm(Sitecore.Mvc.Configuration.MvcSettings.SitecoreRouteName, FormMethod.Post)
)
{
@Html.Sitecore().FormHandler("Cart", "Index")
@Html.HiddenFor(x => Model.Id)
<div>
@Html.DisplayFor(x => book.Name)
@Html.EditorFor(x => book.Name, new { @class = "bold" })
</div>
<div>
@Html.DisplayFor(x => book.Price)
@Html.EditorFor(x => book.Price, new { @class = "bold" })
</div>
<div>
@Html.DisplayFor(x => book.Description)
@Html.EditorFor(x => book.Description, new { @class = "bold" })
</div>
<input type="submit" />
}
這是車控制器:
public class CartController : GlassController
{
[HttpPost]
public ActionResult Index(Book book)
{
string id = book.Id.ToString();
if (!string.IsNullOrEmpty(id))
{
book = SitecoreContext.GetItem<Book>(new Guid(id), false, true);
return PartialView("~/Views/Cart/details.cshtml", book);
}
return Redirect("http://google.com");
}
}
@HishaamNamooya我做了調試,並結合書對象的字段中的值後發現是不正確的。 Guid部分是後期階段。 –
如果您將Id重命名爲CartId,問題是否仍然存在? –
@HishaamNamooya不,它沒有工作,仍然獲得Id的隨機值。 –