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

نام تاپیک: ارسال چندین پارامتر

  1. #1

    ارسال چندین پارامتر

    با سلام و ادب.
    من می خوام چندین پارامتر را از View دریافت کرده و به عنوان آرگومانهای ورودی به یک اکشن بفرستم. جستجویی که کردم ازطریق Routing پارامترها را تعیین و با ViewBag پاس میده. من می خوام دو تا Guid که یکی اختیاری و دیگری الزامیست را ارسال کنم ولی اینکار را انجام نمیده!!! و در نوار آدرس & که برای جداکردن پارامترها میاد، ظاهر نمی شه!! و همه را دنبال هم میاره. ممنون میشم راهنماییم کنید.

  2. #2

    نقل قول: ارسال چنیدین پارامتر

    یک مدل براش درست کنید که فیلد اول از نوع GUID که Required هست و فیلد دوم که Nullable هست .
    داخل فرمتون این مدل رو به اکشنتون Submit کنید .

  3. #3

    نقل قول: ارسال چنیدین پارامتر

    مدل من مربوط به کامنته. وقتی کاربر کامنتی می نویسه، آی دی والد null است. تا اینجای کار درست عمل می کنه ولی وقتی می خوام برای یک کامنت پاسخ درج کنم در ارسال آی دیها_آی دی والد و کامنتی که پاسخ مربوط به آن است_ با مشکل مواجه می شم.
    آیا لازم است یک اکشن جدید مربوط به ارسال پاسخ کامنت هم ایجاد کنم؟
    بازهم مشکلم در ارسال بیش از یک پارامتر است. لطف می کنید اگر یک کد نمونه بگذارید.

  4. #4

    نقل قول: ارسال چنیدین پارامتر

    شما بعنوان ورودی ، لیستی از ID ها بگیرید ، اگر تعداد آیتم های لیست برابر 2 بود یعنی پاسخ به کامنت هست ، آیتم اول کامنت و دوم پاسخ به کامنت .
    اگر 1 بود یعنی خودش کامنت اصلی هستش .

  5. #5

    نقل قول: ارسال چنیدین پارامتر

    شاید با سوالم کلافتون کرده باشم ولی لططفا صبوری کنید.
    این موردی که فرمودید رو قبلا چک کردم و ایرادی در آن نیست. مساله در ایجاد پاسخ کامنته که نمی دونم چطور در مدل ذخیره اش کنم در حالیکه هر دو آی دی رو پشت هم ارسال می کنه در کوئری استرینگ.
    وقتی روی لینک "پاسخ" برای یک کامنت می زنم، فرم مربوطه میاد و پاسخ نوشته می شه. وقتی دکمه submit را می زنم انتظار دارم که این پاسخ برای پاسخ کامنت مورد نظرم ثبت بشه که اینطور نمی شه. همانطور که قبلا عرض کردم هر دو آی دی را پشت هم میاره.مثلا:
    id=90parentid=100
    یعنی & را نمیاره!!!! که پارامترها را از هم تفکیک بکند و بفهمه دوتا پارامتره. بنابراین پیام خطا میده که آی دی که اجباریست برابر با null است.

  6. #6

    نقل قول: ارسال چنیدین پارامتر

    کد ویو و کنترلرتون رو بفرستید.
    این آموزش رو هم بررسی کنید : http://bit.do/MakeCommentsMVC

  7. #7

    نقل قول: ارسال چندین پارامتر

    ویو مدل:
    کد HTML:
    public class Comment_ViewModel    {        public Comment_ViewModel()        {            Id = Guid.NewGuid();            InsertDateTime = DateTime.Now;        }
            /// <summary>        /// کد يکتايي نظر        /// </summary>        //****************************        [Display(Name = "کد يکتايي", Order = 10000)]        //****************************        public Guid Id { get; set; }
    
            /// <summary>        /// کليد والد پيام        /// </summary>        //*****************************************        [Display(Name = "کد يکتايي والد", Order = 10000)]        //[Editable(false)]        //*****************************************        public Guid? ParentId { get; set; }
    
            /// <summary>        /// آي دي پست يا کالايي که نظر براي آن ثبت خواهد شد        /// </summary>        //*****************************************        [Required]        [Editable(false)]        [Display(Name = "کد يکتايي کالا", Order = 10000)]        //*****************************************        public Guid ProductId { get; set; }
    
            /// <summary>        /// نام کاربر نظر دهنده        /// </summary>        //*****************************************        [Required]        [StringLength(maximumLength: 20)]        [Editable(false)]        [Display(Name = "نام", Order = 10000)]        //*****************************************        public string Name { get; set; }
    
            /// <summary>        /// ايميل کاربر نظر دهنده        /// </summary>        //*****************************************        [Required]        [Editable(false)]        [DataType(dataType: DataType.EmailAddress)]        [Display(Name = "ايميل", Order = 10000)]        //*****************************************        public string Email { get; set; }
    
            /// <summary>        /// نظر کاربر        /// </summary>        //*****************************************        [Required]        [StringLength(maximumLength: 100)]        [DataType(dataType: DataType.MultilineText)]        [Display(Name = "نظر", Order = 10000)]        //*****************************************        public string CommentBox { get; set; }
    
            /// <summary>        /// در حال نمايش بودن يا نبودن نظر        /// </summary>        //*****************************************        [Display(Name = "فعال؟", Order = 10000)]        //*****************************************        public bool CommentIsActive { get; set; }
    
            /// <summary>        /// تاريخ و ساعت ثبت نظر        /// </summary>        //*****************************************        [ScaffoldColumn(false)]        [Display(Name = "تاريخ و ساعت ثبت نظر", Order = 10000)]        [Editable(false)]        //*****************************************        public DateTime InsertDateTime { get; set; }
                }
    جاییکه قراره پارامترها ارسال شود:

    کد HTML:
    <div class="panel panel-default" style="margin-top:30px;">    <div class="panel-heading">        <h2>ليست نظرات فعال</h2>    </div>    <table class="table table-striped" style="overflow:auto">        <thead>            <tr>                <th class="label-in-table">                    @Html.DisplayNameFor(model => model.Name)                </th>                <th class="label-in-table">                    @Html.DisplayNameFor(model => model.Email)                </th>                <th class="label-in-table">                    @Html.DisplayNameFor(model => model.CommentBox)                </th>                @*<th class="label-in-table">                    @Html.DisplayNameFor(model => model.CommentIsActive)                </th>*@                <th class="label-in-table">                    @Html.DisplayNameFor(model => model.InsertDateTime)                </th>                <th></th>            </tr>        </thead>        <tbody>            @if (Model.Where(m=>m.CommentIsActive==true).Count() == 0)            {                <tr>                    <td colspan="6" class="text-center labels"> هيچکدام از نظرات فعال نيستند</td>                </tr>            }            else            {                foreach (var item in Model)                {                    if (item.CommentIsActive == true)                    {                        <tr>                            <td class="label-in-table">                                @Html.DisplayFor(modelItem => item.Name)                            </td>                            <td class="label-in-table">                                @Html.DisplayFor(modelItem => item.Email)                            </td>                            <td class="label-in-table">                                @Html.DisplayFor(modelItem => item.CommentBox)                            </td>                            @*<td class="label-in-table">                                @Html.DisplayFor(modelItem => item.CommentIsActive)                            </td>*@                            <td class="label-in-table">                                @Html.DisplayFor(modelItem => item.InsertDateTime)                             </td>                            <td>                                @Html.ActionLink("ويرايش", "Edit", new { id = item.Id }, new { @class = "anchors" }) |                                @Html.ActionLink("جزييات", "Details", new { id = item.Id }, new { @class = "anchors" }) |                                @Html.ActionLink("حذف", "Delete", new { id = item.Id }, new { @class = "anchors" }) |                                @{                                     ViewBag.Id = Guid.NewGuid();                                    ViewBag.Parameters = "parentId=" + item.Id + "&&id=" + ViewBag.Id;                                }                                @Html.ActionLink("پاسخ", "Create", "Comments", new { @ViewBag.Parameters }, new { @class = "anchors"})                                                                @*چطور بيشتر از يک پارامتر را کوري استرينگ ارسال کنم؟        , id =_id, parentId = item.Id  *@                            </td>                        </tr>                    }
                    }            }        </tbody>    </table>
    </div>
    <script type="text/javascript">    $(document).ready(function () {        $("[id*=btnReply]").each(function () {            $(this).click(function () {                var commentid = $(this).attr("id").match(/[\d]+$/);                $("#ParentId").val(commentid);            });        });    });</script>
    روت کانفیگ:

    کد HTML:
    routes.MapRoute(                name: "Create",                url: "{controller}/{action}/{parentId}/{id}",                defaults: new { controller = "Comments", action = "Create", parentId= UrlParameter.Optional ,id= 000000000-0000-0000-0000-000000000000 }            );
    کد اکشن مورد نظر:


    public ActionResult Create(Guid? parentId,Guid id)
    {
    var viewModel = new Comment_ViewModel();
    viewModel.ParentId = parentId;
    viewModel.ProductId = id;
    viewModel.Email = UserManager.GetEmail(User.Identity.GetUserId());
    viewModel.Name= User.Identity.GetUserName();
    //***
    //ViewBag.ProductId = id;
    //ViewBag.ParentId = parentId;

    return View(viewModel);
    }
    آخرین ویرایش به وسیله raha raad : جمعه 17 شهریور 1396 در 08:19 صبح

  8. #8

    نقل قول: ارسال چندین پارامتر

    شرمندم نمی دونم چطور باید کدهام رو بذارم که مرتب نشون بده!!
    آخرین ویرایش به وسیله raha raad : جمعه 17 شهریور 1396 در 08:17 صبح

  9. #9

    نقل قول: ارسال چندین پارامتر

    با سلام دوست عزیز، من کدتونو بررسی کردم اصلا نیازی به این دردسرا نیس، شما اومدین واسه پاس دادن پارامتر ها از ViewBag استفاده کردین که اصلا لزومی نداره، شما فقط به جای دو خط زیر:
    @{ViewBag.Id = Guid.NewGuid(); ViewBag.Parameters = "parentId=" + item.Id + "&&id=" + ViewBag.Id;}
    @Html.ActionLink("پاسخ", "Create", "Comments", new { @ViewBag.Parameters }, new { @class = "anchors" })


    این خط رو جایگزین کنین:

    @Html.ActionLink("پاسخ", "Create", "Comments", new { parentId = item.id, id = Guid.NewGuid() }, new { @class = "anchors" })


    راه درست ارسال پارامتر به اکشن اینجوری هستش، ببینین مشکل رفع میشه یا خیر
    آخرین ویرایش به وسیله mr.sirwan : جمعه 17 شهریور 1396 در 19:07 عصر

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

  1. ارسال چندین پارامتر به MicrosoftReportViewer جهت گزارش گیری با ADO DataSet
    نوشته شده توسط jafarpalideh در بخش ابزارهای گزارش سازی
    پاسخ: 11
    آخرین پست: چهارشنبه 07 خرداد 1393, 14:55 عصر
  2. پاسخ: 3
    آخرین پست: جمعه 29 شهریور 1392, 13:22 عصر
  3. پاسخ: 11
    آخرین پست: چهارشنبه 21 فروردین 1392, 00:23 صبح
  4. سوال: ارسال چندین پارامتر از فرم به گزارش
    نوشته شده توسط MahmoudiNik در بخش گزارش سازی با Crystal Report
    پاسخ: 1
    آخرین پست: جمعه 31 اردیبهشت 1389, 09:53 صبح
  5. ارسال چندین پارامتر از برنامه
    نوشته شده توسط MahmoudiNik در بخش ابزارهای گزارش سازی
    پاسخ: 1
    آخرین پست: پنج شنبه 30 اردیبهشت 1389, 14:34 عصر

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

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