نمایش نتایج 1 تا 2 از 2

نام تاپیک: پاس دادن پارامتر به partialview ای که داخل یک view دیگر هست به کنترلر

  1. #1

    پاس دادن پارامتر به partialview ای که داخل یک view دیگر هست به کنترلر

    سلام دوستان
    من میخوام کاربران بتونن درباره محصولاتی که نمایش داده میشه نظر بدن.برای این کار یک partailview ایجاد کردم که از جدول کامنت مدلش رو میگیره و از نوع create هست.بعد با استفاده از html.renderpartail اون رو داخل view ای که محصولات رو نمایش میده فراخوانی کردم ولی مشکلم اینجاست که میخوام همزمان با فراخوانی partailview آی دی مربوط به اون محصول رو هم پاس بدم به actionresult داخل کنترلر. راهی هست برای انجام این کار؟ اگر نه فرم نظردهی رو از چه طریق دیگه ای قرار بدم؟
    این partialview من هست

    @model ******.Models.Comments

    @using (Html.BeginForm("CommentForm", "Product", FormMethod.Post, new { enctype = "multipart/form-data" }))
    {
    @Html.AntiForgeryToken()

    <div class="form-horizontal">
    <h4>Comments</h4>
    <hr />
    @Html.ValidationSummary(true, "", new { @class = "text-danger" })
    <div class="hide">
    <div class="form-group">
    @Html.LabelFor(model => model.ProductID, "ProductID", htmlAttributes: new { @class = "control-label col-md-2" })
    <div class="col-md-10">
    @Html.DropDownList("ProductID", null, htmlAttributes: new { @class = "form-control" })
    @Html.ValidationMessageFor(model => model.ProductID, "", new { @class = "text-danger" })
    </div>
    </div>

    <div class="form-group">
    @Html.LabelFor(model => model.UserID, "UserID", htmlAttributes: new { @class = "control-label col-md-2" })
    <div class="col-md-10">
    @Html.DropDownList("UserID", null, htmlAttributes: new { @class = "form-control" })
    @Html.ValidationMessageFor(model => model.UserID, "", new { @class = "text-danger" })
    </div>
    </div>
    </div>
    <div class="form-group">
    @Html.LabelFor(model => model.CommentText, htmlAttributes: new { @class = "control-label col-md-2" })
    <div class="col-md-10">
    @Html.EditorFor(model => model.CommentText, new { htmlAttributes = new { @class = "form-control" } })
    @Html.ValidationMessageFor(model => model.CommentText, "", new { @class = "text-danger" })
    </div>
    </div>



    <div class="form-group">
    <div class="col-md-offset-2 col-md-10">
    <input type="submit" value="Create" class="btn btn-default" />
    </div>
    </div>
    </div>
    }


    اینم بخشی از ShowProductView هست که توش partailview را فراخوانی میکنم

    @model ******.Models.Products
    @if (User.Identity.IsAuthenticated)
    {

    Html.RenderPartial("CommentForm");

    }


    اینم کنترلر من هست

       [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult CommentForm(Comments comments,int id)
    {
    int userid = database.Users.First(u => u.UserName == User.Identity.Name).UserID;
    //var productid = database.Products.Find(id);
    if (ModelState.IsValid)
    {
    comments.ProductID = id;
    comments.UserID = userid;
    comments.CommentDate = DateTime.Now;
    comments.IsApproved = false;
    database.Comments.Add(comments);
    database.SaveChanges();
    return View(comments);
    // return View("CommentSubmitSuccess");
    }
    ViewBag.ProductID = new SelectList(database.Products, "ProductID", "ProductTitle");
    ViewBag.UserID = new SelectList(database.Users, "UserID", "UserName");
    return View("ShowProduct");
    }
    آخرین ویرایش به وسیله mansoure_p : یک شنبه 24 دی 1396 در 16:00 عصر

  2. #2
    کاربر دائمی
    تاریخ عضویت
    مهر 1390
    محل زندگی
    rayancode.ir
    پست
    1,559

    نقل قول: پاس دادن پارامتر به partialview ای که داخل یک view دیگر هست به کنترلر

    سلام دوست بزرگوار.
    من نقهمیدم مشکل شما کجاست. کد رو کامل بررسی نکردم اما مشکلی در ویو شما نمی بینم
    تنها اشکال اینجاست که شما در ویو از model خودتون و html helper استفاده کردین اما در هنگام دریافت اون در action خودتون از Comments comments,int id اتسفاده کردین

    امکان داره اینجا bind درست صورت نگیره و اگر شما کد html را ویرایش و یا نام مقادیر رو دریافت کنید مشکلتون حل میشه.

    راحت ترین راه اینه که
    inspect element بگیرین و نام ورودی های action رو دقیقا هم نام چیزی که در ویو ساخته شده قرار بدید.


    البته این رو هم بگم که برای ساخت بخش کامنت و یا نظر دهی بیشتر از تکنیک ajax استفاده میشه که دوستان در همین تالار بارها به اون پرداخته اند.

    موفق باشید

تاپیک های مشابه

  1. پاس دادن پارامتر از صفحه ای به صفحه دیگه
    نوشته شده توسط hamid_193 در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: شنبه 18 اردیبهشت 1395, 14:38 عصر
  2. سوال: پاس دادن پارامتر به fastrport
    نوشته شده توسط nikan84 در بخش ابزارهای گزارش سازی در دلفی
    پاسخ: 1
    آخرین پست: جمعه 12 مهر 1387, 02:05 صبح
  3. پاس دادن پارامتر به Store Procedure
    نوشته شده توسط سلماس در بخش VB.NET
    پاسخ: 7
    آخرین پست: شنبه 02 مهر 1384, 22:01 عصر
  4. پاس دادن پارامتر به کریستال ریپورت در وی بی
    نوشته شده توسط ario در بخش برنامه نویسی در 6 VB
    پاسخ: 13
    آخرین پست: چهارشنبه 14 اردیبهشت 1384, 22:00 عصر
  5. پاس دادن پارامتر به یک web form
    نوشته شده توسط saffari2005 در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: شنبه 12 دی 1383, 21:42 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •