我的课程为
public class Restaurant
{
[Key]
public int RestId { get; set; }
public string RestName { get; set; }
public string Address { get; set; }
public string City { get; set; }
public int Pincode { get; set; }
public string Country { get; set; }
public virtual ICollection<RestaurantReviews>Reviews { get; set; }
}
public class RestaurantReviews
{
[Key]
public int ReviewId { get; set; }
public int RestId { get; set; }
[Required]
public int Rating { get; set; }
[Required]
public string Review { get; set; }
public DateTime? CreatedOn { get; set; }
}
现在我已将View Model创建为
public class ViewRestReviews
{
public Restaurant restaurants{ get; set; }
public RestaurantReviews restaurantreviews { get; set; }
}
我正在使用此ViewModel将记录更新为
[HttpPost]
public ActionResult EditReview(ViewRestReviews model)
{
// TryUpdateModel(model, excludedpro: new[] { "FirstName" });
ModelState.Remove("Rating");
TryUpdateModel(model);
if (ModelState.IsValid)
{
ObjEntity.Entry(model.restaurantreviews).State = EntityState.Modified;
ObjEntity.SaveChanges();
return RedirectToAction("Index","Review", new { RestId = model.restaurantreviews.RestId });
}
return View(model);
}
现在我的问题是我不希望最终用户可以编辑'评级'。为此我在类上使用EXclude属性([Bind(Exclude =“Rating”)])甚至在actionMethod上使用。我使用excluded.But没有什么对我有用...请帮助我如何从VIEWMODEL中排除属性。感谢提前
答案 0 :(得分:0)
理想情况下,您应该具有View特定模型(ViewModel),而不是在不同视图之间具有共享模型。
因此,为Edit Review Action创建一个单独的模型,它没有“Rating”属性。
答案 1 :(得分:0)
您可以重新绑定模型,因此我认为它适合您 如果您需要任何帮助,请告诉我
由于