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

نام تاپیک: این خطا واسه چیه؟کلافم کرده!!

  1. #1

    Question این خطا واسه چیه؟کلافم کرده!!

    درود
    میخوام مقدار ID پستی که براش کامنت گذاشته میشه رو به اکشن InsertComment بفرستم تا مقدارش در فیلد id_post جدول کامنت ها ذخیره بشه اما هر روشی که بکار گرغتم نشد که نشد!! این اروری که میده واسه چیه ؟و باید چجوری آی.دی پست رو تو اکشن درج دیدگاه بدست بیارم؟

    اکشن های درج کامنت

    public ActionResult InsertComment(object id)
    {
    ViewBag.idp = id;
    return PartialView();
    }
    [HttpPost]
    public ActionResult InsertComment(Comment cmnt)
    {
    if (Session["Captcha"] == null || Session["Captcha"].ToString() != cmnt.Capcha)
    {
    return MessageBox.Show("کد امنیتی درست نمی باشد!", MessageType.Alert, true);
    }
    CommentRepository rpCmnt = new CommentRepository();
    if (ModelState.IsValid)
    {
    cmnt.Date = DateTime.Now.ToPersianDate().ToShortDateString();
    cmnt.Time = DateTime.Now.ToPersianDate().ToShortTimeString();
    cmnt.Is_show = false;
    cmnt.Likes = 0;
    cmnt.UnLikes = 0;
    if (rpCmnt.Add(cmnt))
    {
    return MessageBox.Show("دیدگاه شما به درستی درج شد", MessageType.Success, true);
    }
    else
    {
    return MessageBox.Show("دیدگاه شما به درستی درج نشد", MessageType.Success, true);
    }


    }
    else
    {
    return MessageBox.Show(ModelState.GetErrors(), MessageType.Warning, true);
    }
    }

    پارشال ویو مربوط به فرم درج کامنت

    @model Models.Comment


    @using (Ajax.BeginForm("InsertComment", "Home", new AjaxOptions { HttpMethod = "Post", Url = "/Home/InsertComment" }))
    {
    @Html.AntiForgeryToken()
    @Html.ValidationSummary(true, "")


    @Model.id_post= ViewBag.idp;

    <div class="box-input">
    <i class="fa fa-user"></i>
    @Html.TextBoxFor(model =>model.Name, new { @class = "txt-cmnt" })
    </div>
    <div class="box-val">
    @Html.ValidationMessageFor(p =>p.Name)
    </div>
    <div class="box-input">
    <i class="fa fa-at"></i>
    @Html.TextBoxFor(model => model.Email, "رایانامه", new { @class = "txt-cmnt" })
    </div>
    <div class="box-val">
    @Html.ValidationMessageFor(p => p.Email)
    </div>
    <div class="box-input">
    <i class="fa fa-link"></i>
    @Html.TextBoxFor(model => model.Blog, "بلاگ", new { @class = "txt-cmnt" })
    </div>
    <div class="box-input">
    <i class="fa fa-pencil"></i>
    @Html.TextAreaFor(model => model.Text, new { rows = "10", @class = "txt-area" })
    </div>
    <div class="box-val">
    @Html.ValidationMessageFor(p => p.Text)
    </div>


    <div class="box-input">
    <i class="fa fa-barcode"></i>


    <img src="@Url.Action("_CaptchaImage","Home")" id="capchaimg" class="img-capcha" alt="Alternate Text" />


    <button type="submit" class="ref-capcha" id="refresh"><i class="fa fa-refresh"></i></button>


    @Html.TextBoxFor(model => model.Capcha, "", new { @class = "txt-capcha", id = "txt-capcha" })
    </div>
    <div class="box-val">
    @Html.ValidationMessageFor(p => p.Capcha)
    </div>


    <div class="box-input">
    <button class="btn-cmnt" type="submit">درج دیدگاه</button>
    </div>
    }



    view اصلی(نمایش پست)که دارم ازین طریق آی.دی پست روبفرستم به اکشن مربوطه



    <!--درج دیدگاه-->
    <div class="box-new-cmmnt">
    @Html.Action("InsertComment", "Home", new {id=Model.oPost.ID });
    </div>


    و خطایی هم که میده اینه
    Untitled.png
    پیغام خطا هم تو ویژوال استودیو اینه:
    Error executing child request for handler 'System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpH andlerAsyncWrapper'.

    بگید چیکار باید کنمکلافم کرده

  2. #2

    نقل قول: این خطا واسه چیه؟کلافم کرده!!

    قسمت @ رو بردارید :

    @Model.id_post= ViewBag.idp;

  3. #3

    نقل قول: این خطا واسه چیه؟کلافم کرده!!

    نقل قول نوشته شده توسط hakim22 مشاهده تاپیک
    قسمت @ رو بردارید :

    @Model.id_post= ViewBag.idp;
    برداشتم اما نشد دوست گرامی.اینبار قبل از خطای قبلی این خطا رو هم نشون میده!
    er.png

    اصلا میشه بگید خود شما برای بدست آوردن id_post برای درج کامنت چیکار میکنید یا اینکه درباره رفع این خطا لطفا کمک کنید؟ این مساله بظاهر ساده دو روزه وقت منو گرفته .سپاسگزار میشم کمکم کنید.

  4. #4
    کاربر دائمی آواتار ali_md110
    تاریخ عضویت
    فروردین 1385
    محل زندگی
    شیراز
    پست
    1,181

    نقل قول: این خطا واسه چیه؟کلافم کرده!!

    این قسمت پارامتر را چک کنید
    میتونید مقدار viewBag را بجای Model.oPost.ID پاس بدید

    new {id=Model.oPost.ID }


  5. #5

    نقل قول: این خطا واسه چیه؟کلافم کرده!!

    نقل قول نوشته شده توسط ali_md110 مشاهده تاپیک
    این قسمت پارامتر را چک کنید
    میتونید مقدار viewBag را بجای Model.oPost.ID پاس بدید

    new {id=Model.oPost.ID }

    سپاس .اگه اشتباه نکنم این قسمتی که اشاره میکنید مربوط به Html.Action ویو اصلی میشه ،درسته؟ خب تو این مرحله هنوز viewBag ایجاد نشده که بخوام بجای Model.oPost.ID ازش استفاده کنم،viewBag مورد نظر توسط مقداری که از Html.Action فرستاده میشه به اکشن InsertComment پر میشه!

    حالا من یه کاری کردم ،تو پارشال ویو امدم از Html.Hidden استفاده کردم و فیلد id_post رو با مقدار viewBag پر کردم اینجوری:

    int i = ViewBag.idp;
    Html.HiddenFor(model=>model.id_post, new { value =i});

    برک پوینت که میزنم تا پارشال ویو مقدار درون viewBag درسته اما همین که به اکشن پست InsertComment برای ذخیره در دیتابیس میره مقدار فیلد id_post برابر با صفر میشه؟!
    ttt.png

  6. #6
    کاربر دائمی آواتار ali_md110
    تاریخ عضویت
    فروردین 1385
    محل زندگی
    شیراز
    پست
    1,181

    نقل قول: این خطا واسه چیه؟کلافم کرده!!

    ViewBag مقدارش رو بعد از اولین دسترسی و خواندن از ذست میدهد میتنونید بجای اون ازTempData استفاده کنید و بهتر اینه
    بجای viewbag یک ویومدل به پارشال ویو پاس بدید و مقدارش رو بخونید
    یک مثال :
    ویو مدل فرضی ما

    public class Vmodel
    {
    public int Id { get; set; }
    }

    ابتدا یک اکشن بسازید

    [ChildActionOnly]
    public ActionResult InsertCommentPartial()
    {
    var m = new Vmodel {Id = 1234};
    //پاس دادن به پاشال ویو
    return PartialView("_InsertCommentPartial", m);
    }

    اکشن برای ثبت نظرات

    public ActionResult InsertComment(Vmodel vm)
    {

    return View();
    }


    فراخوانی پارشال ویو در ویوی دلخواه

    @Html.Action("InsertCommentPartial", "Home", new { area = "" })


    کدهای پارشیال ویوی _InsertCommentPartial


    @model Vmodel

    @using (Html.BeginForm("InsertComment","Home", FormMethod.Post, new {id = "Form"}))
    {
    @Html.AntiForgeryToken()
    @Html.HiddenFor(x=> x.Id)
    <button type="submit">ثبت</button>


    }


  7. #7

    نقل قول: این خطا واسه چیه؟کلافم کرده!!

    دمتگرم! با
    TempData درست شد!

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

  1. کمک این خطا واسه چیه؟
    نوشته شده توسط barnamenevisjavan در بخش C#‎‎
    پاسخ: 2
    آخرین پست: شنبه 27 خرداد 1391, 00:15 صبح
  2. System.Net.WebResponse response = request.GetResponse() این خطا واسه چیه؟ - کمک کنید error 500
    نوشته شده توسط jsedagat در بخش برنامه نویسی مبتنی بر Microsoft .Net Framework
    پاسخ: 0
    آخرین پست: شنبه 31 اردیبهشت 1390, 00:32 صبح
  3. سوال: علت این خطا واسه بازیابی بانک چیه ؟
    نوشته شده توسط nice_boy_a در بخش VB.NET
    پاسخ: 11
    آخرین پست: پنج شنبه 05 اسفند 1389, 02:43 صبح
  4. این خطا واسه چی پیش میاد ؟؟؟؟
    نوشته شده توسط iman_s52 در بخش C#‎‎
    پاسخ: 6
    آخرین پست: پنج شنبه 10 آبان 1386, 12:18 عصر
  5. این خطا واسه چیه !
    نوشته شده توسط TeRMiNaT00o00R در بخش ASP.NET Web Forms
    پاسخ: 7
    آخرین پست: یک شنبه 17 تیر 1386, 11:40 صبح

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

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