استخراج userid

yusef

عضویت : 1397/09/17 پرسش ها : 4 پاسخ ها : 3

استخراج userid

ارسال شده در : ‫۱۰ ماه قبل، دو شنبه ۲ اردیبهشت ۱۳۹۸، ساعت ۱۰:۳۹

سلام استاد

من می خوام موقع ثبت نظرات ID کاربر لاگین شده را برای درج در جدول نظرات بگیرم ولی نمی توانم.

کدی که من نوشتم:

  public ActionResult CreateComment([Bind(Include = "ProductID,Comment")]Product_Comments comment)
        {
            var name = User.Identity.Name;
            var id = db.Users.Where(c => c.Drama == name).Select(c => c.UserID);

            if (ModelState.IsValid)
            {
                comment.CreateDate = DateTime.Now;
                comment.Show = true;
                comment.UserID = id;
                db.Product_Comments.Add(comment);
                db.SaveChanges();
                return PartialView("Showcomments", db.Product_Comments.Where(c => c.ProductID == comment.ProductID));

            }
            return PartialView(comment);

 

متن خطا:

   cannot implicitly convert type 'system.linq.iqueryable<int>’ to int   

ایمان مدائنی

عضویت : 1396/09/10 پرسش ها : 5 پاسخ ها : 9626

(پاسخ صحیح)

ارسال شده در :‫۱۰ ماه قبل، دو شنبه ۲ اردیبهشت ۱۳۹۸، ساعت ۱۳:۱۹

سلام  

public ActionResult CreateComment([Bind(Include = "ProductID,Comment")]Product_Comments comment)
        {
            var name = User.Identity.Name;
            var id = db.Users.Where(c => c.Drama == name).Select(c => c.UserID).First();

            if (ModelState.IsValid)
            {
                comment.CreateDate = DateTime.Now;
                comment.Show = true;
                comment.UserID = id;
                db.Product_Comments.Add(comment);
                db.SaveChanges();
                return PartialView("Showcomments", db.Product_Comments.Where(c => c.ProductID == comment.ProductID));

            }
       

 

0 تشکر

yusef

عضویت : 1397/09/17 پرسش ها : 4 پاسخ ها : 3
ارسال شده در :‫۱۰ ماه قبل، سه شنبه ۳ اردیبهشت ۱۳۹۸، ساعت ۰۷:۳۴

سلام استاد

من کنترلر رو اصلاح کردم ولی modelstste برای من false میشه

خط کد ویو:

@model DataLayer.Product_Comments

@using (Ajax.BeginForm("CreateComment", "Product", FormMethod.Post, new AjaxOptions()
{
    OnSuccess = "successComment",
    UpdateTargetId = "ListComment"
}))
{
    @Html.AntiForgeryToken()
    @Html.HiddenFor(m => m.ProductID)

        <div class="col-md-12">
            <div class="form-group">
               
                @Html.TextAreaFor(m => m.Comment, new { @class = "form-control", placeholder = "دیدگاه خود را وارد نمایید" })
                @Html.ValidationMessageFor(model => model.Comment, "", new { @class = "text-danger" })
            </div>
            <input class="btn btn-primary" value="ثبت دیدگاه ارزشمند شما" type="submit">
        </div>
      
        <div class="clearfix"></div>

}

 

و کلاس متا دیتا:

  public class Product_CommentsMetaData
    {
        [Key]
        public int CommentID { get; set; }

        public Nullable<int> ParentID { get; set; }

        [Display(Name = "نام محصول")]
        public int ProductID { get; set; }

        [Display(Name = "نام کاربری")]
        public int UserID { get; set; }

        [Display(Name = "متن")]
        [Required(AllowEmptyStrings = false, ErrorMessage = "لطفا {0} را وارد کنید")]
        [MaxLength(800)]
        public string Comment { get; set; }

        [Display(Name = "تاریخ")]
        public System.DateTime CreateDate { get; set; }

        [Display(Name = "وضعیت نمایش")]
        public bool Show { get; set; }
    }

    [MetadataType(typeof(Product_CommentsMetaData))]
    public partial class Product_Comments
    {

    }

0 تشکر

ایمان مدائنی

عضویت : 1396/09/10 پرسش ها : 5 پاسخ ها : 9626
ارسال شده در :‫۱۰ ماه قبل، سه شنبه ۳ اردیبهشت ۱۳۹۸، ساعت ۰۷:۴۹

باید دیباگ کنید و مدل ورودی اکشن را بررسی کنید 

0 تشکر

برای ارسال پاسخ باید وارد شوید و یا در سایت عضو شوید