a

ABLY مقالات و مطالب مجموعه

صفحه اصلی / ABLY مقالات و مطالب مجموعه

بّسم الله الرحمن الرحیم

آموزش json در mvc

چند نکته در این آموزش مهم است :

اولا یک صفحه HTML یا CSHTML ایجاد کتنید در بالای صفحه jquery را لود کنید

<script src="/Scripts/jquery-1.9.1.js"></script>

بعد کد زیر را در ابتدای body قرار دهید


$(document).ready(function () {
    $("#login").click(function () {
        $("#message").html("Logging in...");
        var data = { "userid": $("#userid").val(),
                     "password": $("#password").val(),
                     "rememberme":$("#rememberme").prop("checked") };
        $.ajax({
            url: "/account/validateuser",
            type: "POST",
           data: JSON.stringify(data),
            dataType: "json",
            contentType: "application/json",
            success: function (status) {
                $("#message").html(status.Message);
                if (status.Success)
                {
                    window.location.href = status.TargetURL;
                }
            },
            error: function () {
                $("#message").html("Error while authenticating
                                    user credentials!");
            }
        });
    });
});

این کد در واقع دارد اطلاعات دو TextBox با Id های userid و password را به همراه یک چک باکس برای یادآوری اطلاعات کاربری دریافت می کند و به یک اکشن ارسال می کند طبیعتا اکشن ما باید به شکل زیر باشد

بسم الله الرحمن الرحیم

 

آموزش JSON در ASP.NET MVC

طراحی یک فرم لایگن با استفاده از روش JSON

مزیت این روش در این است که اگر شما بخواهید اطلاعات کاربر را چک کنید نیازی نیست تا ضفحه را رفرش کنید و کاربر در صورتی که کلمه عبور خود را فراموش کرده و می خواهد نام کاربری و کلمه عبور خود را تست کند مدت زیادی را برای لود شدن صفحه صرف کند

برای شروع کار ابتدا در webconfig کد زیر را اضافه کنید


<connectionStrings>
  <add name="connstr" connectionString="data source=.\sqlexpress;
initial catalog=Northwind;integrated security=true"/></connectionStrings>
<system.web>

  <authentication mode="Forms">   
<forms loginUrl="~/account/login" defaultUrl="~/home/index"></forms>
  </authentication>

  ...

</system.web>

و همچنین کد زیر را به webconfig اضافه کنید

بسم الله الرحمن الرحیم

نکته ای در ارتباط با EntityFramework 6 و MVC

نسخه 6 EntityFramework

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


Install-Package EntityFramework -Version 6.1.0

یا نسخه های بالاتر از نسخه 5 استفاده کنید این نسخه آخرین نسخه ای است که ازScaffolding پشتیبانی می کند

بسم الله الرحمن الرحیم

آموزش GoogleMap

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

مثل همیشه مثال را بدون توضیحات اضافه شروع می کنیم. (من خودم شخصا توضیحات طولانی را برای آموزش نمی پسندم و دوست دارم کد با مختصری توضیحات ارائه شود)

بسم الله الرحمن الرحیم

 آموزش asp.net mvc

برای تعیین اعتبار یک فیلد مجموعه از DataAnnotations لازم ارائه گردید. قابلیت دیگری برای چک کردن یک مقدار وجود دارد که به صورت Ajax عمل می کند و از لود شدن دوباره یک صفحه جلوگیری می کند. طبیعتا همه ما فیلد نام کاربری مربوط به ثبت نام را درسایت های مختلف تکمیل کرده ایم و دیده ایم چطور وقتی که یک نام کاربری تکراری ثبت می کنیم خطای مربوطه را نمایش می دهد.

برای شروع کار یک پروژه جدید MVC ایجاد می کنیم و در بخش Model یک کلاس جدید با نام Account ایجاد و کد زیر را در آن می نویسیم:

namespace MvcApplication2.Models

{
    [Table("Account")]
    public class Account

    {

        [Key]
        [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
        public int Id { get; set; }

        [Required]
        [Display(Name = "User name")]
        [Remote("ValidateUserName", "Account")]
        public string Use

بسم الله الرحمن الرحیم

آموزش asp.net mvc

 بنده شخصا از روش  Code First در تولید وب سایت های MVC استفاده می کنم. ولی شروع فراگیریم در ارتباط با MVC به صورت روش معمولی یا همان روش طراحی پایگاه داده با SQL و سپس اضافه کردن مدل مربوطه به پروژه و... بود. برخی از دوستان از همین روش هنوز برای طراحی پروژه های MVC استفاده می کنند، به همین دلیل با مشکلاتی مواجه می شوند (البته هر روشی مزایا و معایب خود دارد در این بخش قصد ندارم در خصوص مزایا و معایب روش ها صحبت کنم بلکه مقصود ارائه راه حل در مورد مشکلات است). یکی از مشکلاتی که با آن مواجه خواهیم شد بحث DataAnnotations و Metadata هایی است که شما برای ساخت یک View سفارشی کد نویسی می کنید. خوب هر بار که شما پایگاه داده خود را تغییر دهید و بخواهید به هر دلیلی مجددا از پایگاه داده خود Model ها را مجددا ایجاد کنید تمامی کد نویسی شما از بین خواهد رفت.

برای حل این مشکل کافی است که یک کلاس Partial تعریف نمایید و در آن فیلدهای خود را در آن بنویسید و سپس یک کلاس برای نگهداری Metadata تعریف نمایید، به این کلاس ها Buddy می گویند.

بسم الله الرحمن الرحیم

آموزش asp.net mvc

همانطورکه می دانید موتورهای زیادی برای طراحی view سایت، در تکنولوژی MVC وجود دارد که دو موتور پیشنهادی از سوی مایکروسافت ASPX  و موتور قدرمتند Razor می باشد. علاوه بر این دو موتور یا به اصطلاح view Engine، موتور های دیگری نیز توسط گروه های مختلف طراحی گردیده است که 4 موتور پیشرو در این عرصه موتورهای sp

بسم الله الرحمن الرحیم

آموزش asp.net mvc

هنگامی که با یک view کار می کنید شما بدون اینکه Namespaceهای مربوطه را اضافه کرده باشید (برخلاف سایر کلاس ها) می توانید با تعدادی از Namespace ها بدون استفاده از دستور using کار کنید؟

برخی از فضاهای نام که بیشتر مورد استفاده خواهند بود به صورت پیش فرض توسط مایکروسافت در کلاس پیاده ساز view اضافه شده است. اما این کلاس کجاست؟

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

برای این کار بنده یک view با محتوای خاصی ایجاد کردم که در مسیر مربوطه پس از بررسی فایل ها به فایل مورد نظرم دست پیدا کردم و این فایل شامل اطلاعات زیر بود:

 

 

همان طور که در این فایل مشخص است Namespaceهایی به صورت پیش فرض توسط مایکروسافت به viewشما اضافه شده است. شما نیز می توانید به view خود Namespaceهای مورد نظر خود را اضاه کنید. اگر به یک فضای نام، تنها در یک view نیاز دارید بهتر است به روش معمولی آن را به صفحه اضافه کنید مثل کد زیر:

0912 097 5516 :شماره تماس
0713 625 1757 :شماره تماس