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

نام تاپیک: چجوری عنوان یک پست رو بهمراه آی.دی اون رو توی یو.آر.ال جا بدم؟

  1. #1
    کاربر دائمی
    تاریخ عضویت
    شهریور 1389
    پست
    245
    تشکر کردن
    134
    27 بار تشکر شده در 21 پست

    Question چجوری عنوان یک پست رو بهمراه آی.دی اون رو توی یو.آر.ال جا بدم؟

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

    public class RouteConfig
    {
    public static void RegisterRoutes(RouteCollection routes)
    {
    routes.MapMvcAttributeRoutes();
    }
    }


    [Route("home")]
    public class HomeController : Controller
    {

    //نمایش پست
    [Route("loadpost/{id}")]
    public ActionResult ShowPost(int id)
    {



    اینم کدهای ویو

    <h3>@Html.ActionLink(Model.oPost.Tittle, "ShowPost", "Home", new {id = Model.oPost.ID }, null)</h3>

  2. #2
    کاربر دائمی آواتار hakim22
    تاریخ عضویت
    بهمن 1390
    محل زندگی
    Codehaks@
    پست
    1,696
    تشکر کردن
    329
    1,393 بار تشکر شده در 945 پست

    نقل قول: چجوری عنوان یک پست رو بهمراه آی.دی اون رو توی یو.آر.ال جا بدم؟

    اول باید روت رو تنظیم کنید :


    [Route("loadpost/{id}/{title}")]
    public ActionResult ShowPost(int id)
    {


    دوم باید مقدار title رو در لینک به عنوان routeValue پاس بدید


    <h3>@Html.ActionLink(Model.oPost.Tittle, "ShowPost", "Home", new {id = Model.oPost.ID,title=Model.oPost.Tittle }, null)</h3>

  3. کاربرانی که به خاطر مطلب مفید hakim22 از وی تشکر کرده‌اند:


  4. #3
    کاربر دائمی
    تاریخ عضویت
    شهریور 1389
    پست
    245
    تشکر کردن
    134
    27 بار تشکر شده در 21 پست

    نقل قول: چجوری عنوان یک پست رو بهمراه آی.دی اون رو توی یو.آر.ال جا بدم؟

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


    [Route("loadpost/{id}/{title}")]
    public ActionResult ShowPost(int id)
    {


    دوم باید مقدار title رو در لینک به عنوان routeValue پاس بدید


    <h3>@Html.ActionLink(Model.oPost.Tittle, "ShowPost", "Home", new {id = Model.oPost.ID,title=Model.oPost.Tittle }, null)</h3>
    اتفاقا همین کار رو امتحان کرده بودم.منتهی توی پارمترهای اکشن هم مقدار title رو وارد کرده بودم.الان هم کاری که شما گفتید رو انجام دادم اما در دو حالت خطای زیر رو داد
    2222222222.png

    ببینید من میخوام ادرس دهی یه چیزی مانند زیر بشه یعنی حتی نام اکشن هم نوشته نشه:
    www.mysite/Titlepost

    یا بصورت زیر
    www.mysite/MenuName/SubMenu/TitlePost

  5. #4
    کاربر تازه وارد
    تاریخ عضویت
    تیر 1396
    محل زندگی
    تهران
    پست
    36
    تشکر کردن
    0
    2 بار تشکر شده در 2 پست

    نقل قول: چجوری عنوان یک پست رو بهمراه آی.دی اون رو توی یو.آر.ال جا بدم؟

    مطلب بسیار عالی و خوب است

  6. کاربرانی که به خاطر مطلب مفید unique2017 از وی تشکر کرده‌اند:


  7. #5
    کاربر دائمی
    تاریخ عضویت
    شهریور 1389
    پست
    245
    تشکر کردن
    134
    27 بار تشکر شده در 21 پست

    نقل قول: چجوری عنوان یک پست رو بهمراه آی.دی اون رو توی یو.آر.ال جا بدم؟

    درود
    ایراد بخاطر یه سری بی دقتی از جانب خودم بود که حل شد
    اینام کدهای درست :

    منو:

    // بارگزاری پست ها براساس منو
    [Route("{mnu}/{id}")]
    public ActionResult GetMenu(int id,int page=1)
    {
    if (id==0)
    {
    ViewBag.Error = "نشانی درخواست شده یافت نشد!";
    return View("~/Views/Home/ErrorPage.cshtml");
    }
    PostRepository rpPost = new PostRepository();
    CommentRepository rpCmnt = new CommentRepository();
    WmHomePage oModel = new WmHomePage();
    List<Post> pst = rpPost.Select().ToList();


    oModel.CarentPage = page;
    oModel.posts = pst.Where(x => x.id_menu == id && x.Is_show==true).OrderByDescending(d => d.Date).ThenByDescending(t => t.Time).Skip((page - 1) * 10).Take(10).ToList();
    oModel.TotalItemPost = oModel.posts.Where(x => x.Is_show == true).Count();
    oModel.AtachPosts = pst.Where(x => x.FileName != "" && x.Is_show==true).OrderBy(d => d.Date).ThenBy(t => t.Time).Take(3).ToList();
    oModel.TopViewPosts = pst.Where(x=>x.Is_show==true).OrderByDescending(s => s.Views).ThenByDescending(d => d.Date).ThenBy(t => t.Time).Take(4).ToList();


    oModel.comments = rpCmnt.Where(x => x.Is_show == true).OrderBy(d => d.Date).ThenBy(t => t.Time).Take(5).ToList();


    return View(oModel);
    }


    //--------------------------------


    // بارگزاری پستها براساس زیر منو
    [Route("{mnu}/{sb}/{id}")]
    public ActionResult GetSubMenu(int id, int page=1)


    <ul class="ul-main">
    @foreach (var item in Model)
    {
    if (item.Parent == 0)
    {
    <li class="li-main">
    <a href="@Url.Action("GetMenu", "Home", new { id = item.ID, mnu=item.Url }, null)"><i class="@item.Icon"></i> @item.Name </a>
    <ul class="ul-sub">
    @foreach (var sub in Model)
    {
    if (sub.Parent == item.ID)
    {
    <li class="li-sub">
    <a href="@Url.Action("GetSubMenu", "Home", new { id = sub.ID,mnu=item.Url,sb=sub.Url }, null)">@sub.Name </a>
    </li>
    }
    }
    </ul>
    </li>
    }
    }
    </ul>

    menu.png
    پست:

    //نمایش پست
    [Route("{mnu}/{sb}/{ttl}/{id}")]
    public ActionResult ShowPost(int id)
    {


    <h3>@Html.ActionLink(item.Tittle, "ShowPost", "Home", new { id = item.ID,ttl=item.Tittle,mnu=urlmnu,sb=urlsub },null)</h3>

    post.png
    فقط همینجور که می بینید توی یوآرال پست چون سرنام(عنوان) پست فارسی هست آی.دی پست قبل از سرنام درج شده.آیا راهی هست مانند ترتیبی که توی اکشن مشخص کردم آی.دی بعد از سرنام در یوآرال درج شه.(سرنام فارسی باشه)؟

  8. #6
    کاربر دائمی آواتار hakim22
    تاریخ عضویت
    بهمن 1390
    محل زندگی
    Codehaks@
    پست
    1,696
    تشکر کردن
    329
    1,393 بار تشکر شده در 945 پست

    نقل قول: چجوری عنوان یک پست رو بهمراه آی.دی اون رو توی یو.آر.ال جا بدم؟

    خطای Ambiguous یعنی دو متد دارید که یک ساختار دارن و MVC نمیدونه کدوم رو اجرا کنه.


    [Route("loadpost/{id}/{title}")]
    public ActionResult ShowPost(int id,string title)
    {

  9. کاربرانی که به خاطر مطلب مفید hakim22 از وی تشکر کرده‌اند:


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

  1. چجوری تعداد بازدید یک پست رو محاسبه و کنیم؟
    نوشته شده توسط saeed-71 در بخش PHP
    پاسخ: 20
    آخرین پست: چهارشنبه 07 مرداد 1394, 23:10 عصر
  2. چجوری ، یک هاور رو ثابت نگه دارم
    نوشته شده توسط pclordweb در بخش طراحی وب (Web Design)
    پاسخ: 1
    آخرین پست: پنج شنبه 15 فروردین 1392, 12:13 عصر
  3. چجوری آیتمهای یک ListView رو انتخاب کنیم؟
    نوشته شده توسط mohsen57 در بخش کامپوننت ها و ابزارهای کاربردی در VB6
    پاسخ: 1
    آخرین پست: سه شنبه 06 اسفند 1387, 16:18 عصر

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

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