دسته بندی ها
16:50 1399/07/13

باز کردن لینک (URL) از طریق کنترلر در Asp.net Mvc Core

مشخصات سوال کننده :
کاربر : pedram_khan     امتیاز کاربر : 277     رتبه کاربر : 6
دسته بندی : Asp.net Mvc Asp.net Core

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 3888
هوش مصنوعی

پاسخ هوش مصنوعی

برای انجام این کار در ASP.NET MVC Core، شما می توانید یک اکشن در کنترلر خود ایجاد کنید که قبل از هدایت به لینک مورد نظر، عملیات ثبت تعداد کلیک ها را انجام دهد.

در ابتدا، در کنترلر خود یک اکشن مثل زیر تعریف کنید:


public class LinkController : Controller
{
    private readonly ApplicationDbContext _context;

    public LinkController(ApplicationDbContext context)
    {
        _context = context;
    }

    public IActionResult ClickLink()
    {
        // ثبت تعداد کلیک در دیتابیس
        var linkClick = new LinkClick
        {
            ClickedAt = DateTime.Now
        };

        _context.LinkClicks.Add(linkClick);
        _context.SaveChanges();

        // هدایت به لینک خارجی
        return Redirect("https://google.com");
    }
}

سپس در ویوی خود، می توانید تگ a را به گونه ای تغییر دهید که به اکشن `ClickLink` هدایت کند:

<a href='@Url.Action("ClickLink", "Link")'>Click me ...</a>

با این تغییرات، زمانی که کاربر بر روی لینک کلیک کند، ابتدا تعداد کلیک ها در دیتابیس ثبت می شود و سپس به لینک خارجی هدایت خواهد شد.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : saedbfd 21:11 1399/07/13

محاسبه تعداد کلیک هایی که روی یک لینک می شود در Asp.net

وقتی شما می خواید قبل از اینکه یک URL رو در Asp.net Core یا Asp.net mvc باز کنید یکسری عملیات رو انجام بدید نباید به صورت مستقیم لینک اون آدرس رو در تگ a قرار بدید. چون در این صورت به محض کلیک روی لینک به صفحه مرد نظر هدایت می شوید و نمیتونید دستورات مورد نظر خودتون رو اجرا کنید. برای این منظور میتونید از دستور Redirect در کنترلر استفاده کنید.

 

باز کردن لینک (URL) از طریق کنترلر در Asp.net Mvc Core

خب برای باز کردن یک لینک از طریق کنترلر در Asp.net Core مراحل زیر رو انجام بدید. در ابتدا در View خودتون یک تگ a ایجاد کنید. در این تگ a کنترلر و اکشن متد رو تعیین کنید. همچنین آدرس مورد نظر رو هم میتونید به صورت یک پارامتر ارسال کنید به کنترلر و در Action دریافتش کنید.

 

<a asp-controller="Home" asp-action="openlink" asp-route-url="https://URL.com">
        کلیک کتید           
</a>

//Or

<a href="Home/openlink?url=https://URL.com">
        کلیک کتید           
</a>

خب وقتی روی لینک بالا کلیک میشه کاربر به سمت کنترلر Home و اکشن متد openLink هدایت میشه. اما حالا در این اکشن متد باید چه کاری انجام بشه.

 

باز کردن URL توسط متد Redirect در Asp.net Core

 

public class HomeController : Controller
{
        [HttpGet]
        public IActionResult openlink(string url)
        {
            //Your Statement
            return Redirect(url);
        }
}

خب همونطوری که در کدها مشخص هست در اکشن openLink مقدار پارامتر url رو دریافت می کنیم و توسط دستور Redirect کاربر رو به لینک مورد نظر هدایت می کنیم. در این اکشن متد میتونید عملیات مورد نظرتون رو قبل از Redirect انجام بدید.

ویرایش شده در جمعه 24 تیر 1401 ساعت 09:14:45
به این پاسخ امتیاز بدهید    0
امتیاز: 1664 رتبه: 1
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود