ably ably برای هدایت شدن به سایت جدید اینجا کلیک کنید

آموزش برنامه نویسی

آموزش برنامه نویسی وب، اندروید، ویندوز , اسکیوال و...
Tell: 0912 097 5516
| Email: Hello@EduOnline.ir

۲۸ مطلب با کلمه‌ی کلیدی «MVC 3» ثبت شده است

Entity Farmework و Code First

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

 

برای طراحی پایگاه داده به وسیله Entity Farmework  و Code First بهتر است این چند نکته را رعایت فرمایید:

 

بهتر است از نام Id به عنوان نام تمامی کلید های اصلی جداول استفاده کنید هر چند در بحث

convention over configuration این نکته مورد قبول است اما چیزی را که همه آن را به عنوان یک قرارداد نانوشته قبول دارند را عوض نکنید تا برای انجام کار توضیحاتی لازم نباشد.

بهتر است از نوع GUID برای کلید های اصلی جداول استفاده کنید. نوع int از لحاظ واکشی اطلاعات سریعتر است زیرا مقایسه عددی سریعتر از مقایسه رشته ای است.

باید در نظر داشته باشید در جداولی مثل شهر، استان، کشور می توانید از نوع int برای کلید اصلی استفاده کنید و هیچ مشکلی نخواهد بود اما بهتر است برای جداول اطلاعاتی که شماره ها بسیار ارزشمند هستند و بهتر است در کل دیتابیس عدد منحصر به فرد باشد از نوع GUID استفاده شود.

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

مثلا: ProductId

برای تعیین نامی مشخص برای ذخیره property ها در دیتابیس می توانید به صورت زیر عمل کنید:

 

 [Column(“ProductId", TypeName="Guid")] 

 

با توجه به اینکه در MVC به صورت پیش فرض اگر Maxlength برای یک Property String تعیین نشود nvarchar(MAX) در دیتابیس در نظر گرفته می شود، لذا برای تمامی Property مقدار Maxlength را تعریف کنید مگر در شرایطی که نیاز به رشته های طولانی دارید.

با توجه به نحوه ذخیره سازی رشته ها در SQL Server ، اگر یک رشته می تواند در نوع nvarchar(300)  ذخیره شود از این نوع استفاده کنید.

با توجه به اینکه در Entity Framework 6 از روی نوع enum فیلد مناسب در دیتابیس ساخته می شود اما بهتر است فیلدهای از نوع enum به صورت int تعریف شوند و شما خودتان نوع بازیابی شده از دیتابیس را به enum تبدیل کنید.

مثلا

Public int CustomerType {get; set;};

 در نام گذاری property ها این نکته را در نظر داشته باشید که نباید از کلمات کلیدی (SQL Server,Oracle,…) استفاده کنید

مثلا: [Order]

 

بازیابی دیتابیس (Restore) به وسیله EntityFarmework

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

در پروژه های MVC شما نیاز خواهید پیدا کرد که دیتابیسی که به وسیله Entity Framework (معمولا در روش Code First) تغییر پیدا کرده است را به حالت قبل بازیابی کنید.

به ازای هر بار درخواست تغییر دیتابیس توسط EF یک شماره منحصر به فرد ایجاد می شود که می توانید در دیتابیس خود در تیبل Migration__  این پارت ها را مشاهده کنید.

برای برگرداندن دیتابیس خود به مرحله قبل می توانید به صورت زیر عمل کنید:

Update-Database -Target 2556

2556 شماره حالتی است که قبل از اعمال تغییرات ثبت شده بوده است.

برای رفتن اولین مرحله نیز می توانید به صورت زیر عمل کنید:

Update-Database -Target 0



برطرف کردن مشکل LINQ to Entities does not recognize

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

Server Error in '/' Application.


LINQ to Entities does not recognize the method 'EduOnline' method, and this method cannot be translated into a store expression.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

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

db.Accounts.Where(m => m.AccountType == Enum.AccountTypes.Admin

برای حل این مشکل کافی است که کد خود را به صورت یک عبارت مشخص قابل بررسی توسط LINQ تبدیل کنید، مثلا در اینجا می توانید به صورت زیر و خیلی ساده کد خود را بنویسید و مشکل خود را حل نمایید:

db.Accounts.Where(m => m.AccountType == (int)Enum.AccountTypes.Admin)

در اینجا شما با تبدیل عبارت خود به یک به عبارت قابل مقایسه برای LINQ این مشکل را حل کرده اید

اضافه کردن فیلد nullable در دیتابیس با EF

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

اگر بخواهید پراپرتی زیر را به صورت nullable در پایگاه داده ذخیره کنید

[Required]
public int somefield {get; set;}

می بابیست کد خود را به صورت زیر تغییر دهید

[Required]
public int? somefield {get; set;}

علامت "؟" بعدر از نوع متغییر باعث می شود که این متغییر مقدار null را نیز بپذیرد.

همچنین با استفاده از روش Fluid API می توانید اینکار را انجام دهید:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
        modelBuilder.Entity<SomeObject>().Property(m => m.somefield).IsOptional();            
        base.OnModelCreating(modelBuilder);
}

آموزش برنامه نویسی سریع

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

بسیاری از کارهایی که ما در پروژه ها انجام می دهیم تکراری است از نوشتن یک کد ساده تا نوشتن یک کلاس و حتی خود یک پروژه!!

برای افزایش سرعت برنامه نویسی و تولید نرم افزار باید شما مجموعه ای از ابزار های مفید را برای خود ایجاد نمایید.

در این آموزش شما را با یک روش ساده برای افزایش نوشتن توابع و متدهای تکراری آشنا خواهم کرد

همه شما حداقل یک بار اینگونه توابع را نوشته اید

 

public void MyMethod()
        {
            try
            {

            }
            catch (Exception exception)
            {
                throw new Exception(exception.Message);
            }
            finally
            {

            }
       }

مثل همیشه مختصر و مفید، می خواهیم کاری انجام دهیم تا دیگر هیچ وقت اینگونه توابع را ننویسیم.

در ابتدا برای آموزش، فکر کنید میخواهید یک حلقه for بنویسید برای این کار، من راه بهتری سراغ دارم.

ابتدا کلمه for را بنویسید و سپس دو بار کامند TAB را بر روی کیبورد خود فشار دهید (یک حلقه for کامل نوشته شد).

فکر کنید می خواهید کد زیر را بنویسید:

public string StartSection { get; set; }

کلمه prop را بنویسید و سپس دوبار کامند TAB را بر روی کیبورد فشار دهید!!!

به این ابزار Code Snippet گفته می شود که از نوشتن کدهای تکراری جلوگیری می کند.

خوب حال به مسیر زیر بروید

C:\Users\{UserName}\Documents\Visual Studio 2013\Code Snippets\Visual C#

من از ویژوال استادیو 2013 استفاده می کنم پس در آدرس بالا Visual Studio 2013 نوشته شده است شاید نسخه شما متفاوت باشد (دنبال نسخه خود باشید).

بجای {UserName} باید دنبال پوشه ای که مربوط به نام کامپیوتر شما است باشید. مثلا

C:\Users\EduOnlien User\Documents\Visual Studio 2013\Code Snippets\Visual C#

اگر مسیر را پیدا نکردید، در هر مسیری که دوست دارید پوشه زیر را extract کنید.

دریافت کد نویسی به روش EduOnline
حجم: 2.52 کیلوبایت
EduOnline SniptCode

حال در ویژوال استادیو خود، منو Tools را از نوار منو بالا انتخاب کنید و سپس منو Code Sinppets Manager را انتخاب کنید در پنجره باز شده از قسمت

Language گزینه Visual C# l را انتخاب کنید و سپس گزینه Add را بزنید و به درون فولدری (حتما باید درون فولدر EduOnline SniptCode قرار گرفته باشید) که دانلود کرده اید بروید و سپس گزینه Select Folder را بزنید، سپس Ok را انتخاب کنید تا پنجره بسته شود.

حال در بخش کد نویسی خود عبارت

pum را بنویسید و سپس دوبار کلید Tab را بر روی کیبورد خود فشار دهید، سه گزینه به شما نمایش داده می شود که می توانید هر یک را انتخاب کنید.

برای کد نویسی در MVC  نیز می توانید کلمه act را بنویسید و سپس دوبار کلید Tab را بر روی کیبورد خود فشار دهید.

تعیین یک Button به عنوان DefaultButton در MVC روش 2

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

در MVC  برای اینکه شما یک Button را به عنوان Button  پیش فرض قرار دهید و در صورتی که کاربر دکمه Enter کیبورد را زد آن Button را فراخوانی کنید کافی است به صورت زیر عمل کنید

 @*<script type="text/javascript">              $(document).ready(function () {
                  $("#MyForm").keypress(function (e) {
                      kCode = e.keyCode || e.charCode //for cross browser
                      if (kCode == 13) {
                          var defaultbtn = $(this).attr("DefaultButton");
                          $("#" + defaultbtn).click();
                          return false;
                      }
                  });
              });
&lt;/script>*@
 
          &lt;script type="text/javascript">
              var ButtonKeys = { "EnterKey": 13 };
              $(function () {
                  $("#MyForm").keypress(function (e) {
                      if (e.which == ButtonKeys.EnterKey) {
                          var defaultButtonId = $(this).attr("DefaultButton");
                          $("#" + defaultButtonId).click();
                          return false;
                      }
                  });
              });
&lt;/script>
 
 @using (Html.BeginForm("NewCustomer", "Customer", FormMethod.Post, new { DefaultButton = "btnContinue", id = "MyForm", Name = "MyForm" }))
    {   <div id="login">
         <table style="vertical-align:5px;">
                        <tr>
                           <td>
      Enter Your Email ID
                            @Html.TextBoxFor(m => m.EmailId, new { @tabindex = "1", @Id = "subemail", @Name = "subemail"})
                            </td>
                        </tr>
 
                         <tr>
                            <td>
 
                                    Select Your City</h2>
                            @Html.DropDownListFor(m => m.Address.City, new SelectList(ViewBag.CityList, "ItemValue", "ItemText"), new { @tabindex = "2"})
 

                            </td>
                        </tr>
                        <tr>
                            <td>
                                &lt;input type="submit" value="Great Deals" class="btn" name="Continue" id="btnContinue"  runat="server" tabindex="3"/>
 
                    </table>
                </div>

تعیین یک Button به عنوان DefaultButton در MVC

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

تعیین یک Button به عنوان DefaultButton در MVC

در MVC  برای اینکه شما یک Button را به عنوان Button  پیش فرض قرار دهید و در صورتی که کاربر دکمه Enter کیبورد را زد آن Button را فراخوانی کنید کافی است به صورت زیر عمل کنید.

<script type="text/javascript"> 
$(document).ready(function (){
$("#MyForm").keypress(function (e) {
kCode = e.keyCode || e.charCode /*for cross browser */
if (kCode == 13) { var defaultbtn = $(this).attr("DefaultButton");
$("#" + defaultbtn).click();
return false;
}
});
});
</script>
@using (Html.BeginForm("Index", "Home", FormMethod.Post, new { DefaultButton = "SubmitButton", id = "MyForm" }))
{
@Html.TextBox("txtname")
<span>Please Enter value and then press Enter Key</span><br />
<input type="submit" name="btnSubmit" id="SubmitButton" value="Submit" />
}

خطای undefined

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

خطای undefined

<script>
        $(document).ready(function () {
            $("#login").click(function () {

           
                var username = $("#username").val();
                var password = $("#password").val();
              
                alert(username);
               
        });
});
</script>

در پنجره alert پیغام زیر نمایش داده می شود.

undefined

1) فایل jquery را در ابتدای head قراردهید نه انتهای body

2) Id  کنترل ها را چک کنید

<input name="username" id="username" type="text" class="input username" placeholder="Username" />
<input name="password" id="password" type="password" class="input password" placeholder="Password" />

System.IO.FileNotFoundException: Could not load file or assembly

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

خطای System.IO.FileNotFoundException: Could not load file or assembly

اگر از Visual Studio 2012 یا 2013 استفاده می کنید ممکن است در اجرای دستور

Enable-Migrations

یا

update-database

با خطای زیر موجه شوید

ادامه مطلب...

تغییر Layout.cshtml_

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

آموزش asp.net mvc

هنگامی که شما یک پروژه جدید ایجاد می کنید به صورت پیش فرض قالب یا همان Layout شما که توسط MVC ایجاد می شود به صورت زیر خواهد بود

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title>@ViewBag.Title - My ASP.NET MVC Application</title>
        <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
        <meta name="viewport" content="width=device-width" />
        @Styles.Render("~/Content/css")
        @Scripts.Render("~/bundles/modernizr")
        <script src="~/Temporary/jquery-1.8.2.js"></script>
    </head>
    <body>
        <header>
            <div class="content-wrapper">
                <div class="float-left">
                    <p class="site-title">@Html.ActionLink("your logo here", "Index", "Home")</p>
                </div>
                <div class="float-right">
                    <section id="login">
                        @Html.Partial("_LoginPartial")
                    </section>
                    <nav>
                        <ul id="menu">
                            <li>@Html.ActionLink("Home", "Index", "Home")</li>
                            <li>@Html.ActionLink("About", "About", "Home")</li>
                            <li>@Html.ActionLink("Contact", "Contact", "Home")</li>
                        </ul>
                    </nav>
                </div>
            </div>
        </header>
        <div id="body">
            @RenderSection("featured", required: false)
            <section class="content-wrapper main-content clear-fix">
                @RenderBody()
            </section>
        </div>
        <footer>
            <div class="content-wrapper">
                <div class="float-left">
                    <p>&copy; @DateTime.Now.Year - My ASP.NET MVC Application</p>
                </div>
            </div>
        </footer>

        @Scripts.Render("~/bundles/jquery")
        @RenderSection("scripts", required: false)
    </body>
</html>

این قالب یک Layout است که در پروژه MVC با نوع  Internet ایجاد شده است ترجیحا برای اینکه به مشکل برنخورید بهتر است تغییراتی را در آن ایجاد کنید

مثال:

ممکن است شما یک تابع jquery یا javascript  داشته باشید که در پروژه MVC شما کار نمی کند در صورتی که تابع شما صحیح است مثلا مثل تابع زیر

 <script>
        $(document).ready(function () {
            $("#TestButton").click(function () {

                alert("Huge Code :)");

    });
        });</script>

خوب اگر این کد اجرا نشود پس یک جای کار مشکل دارد!!!

برای اجرا شدن این چنین کد های سنگینی :) بهتر است که Layout پیش فرض را کمی تغییر دهید. برای اجرا شدن این کد کافی است که فقط دستور زیر را که در پایین ترین خط body  نوشته شده است به میان دستورات Head انتقال دهید

@Scripts.Render("~/bundles/jquery")

مشکلات NET 4.5.

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

متاسفانه میاکروسافت همیشه بر روی کاربرانش به عنوان یک جامعه آزمایشگاهی استفاده می کند همه ویندوز ویستا و عمر کمتر از یک سال آن را به خاطر دارید!

حال که مایکروسافت NET 4.5 خود را عرضه کرده است، ترجیحا تا stable شدن آن بهتر است از آن استفاده نکنید

چند مشکل ساده:

بجای اسیکوال کانکشن همیشگی می بایست چند property دیگر را set کنید که ممکن چندین ساعت وقت شما را بگیرد!!!

برای Run شدن پروژه همیشه یک سری dll در پوشه bin وجود دارند که فراخوانی می شوند متسفانه در اینجا هم اگر NET 4.5 استفاده کنید به مشکل برخواهید خرد

مشکل آخر :

شاید اگر از NET 4 استفاده کنید برای نصب Package ها و compatiable کردن آنها چند ساعت بگذارید!! که باز هم زیاد خواهد بود اما برای همان کار با NET 4.5 شاید چند روز :(

ساخت یک پروژه MVC

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

ساخت یک پروژه MVC

بهترین نسخه برای ایجاد پروژه در حال حاضر نسخه MVC 4 می باشد که بهتر است به صورت زیر ایجاد شود

1- MVC 4

2- NET 4 (در مورد معایب  4.5 NET توضحاتی در این بخش ارائه کردم )

3- EF 5 (در مورد معایب EF 6 توضحاتی در این بخش ارائه کردم )

4- نوع پروژه را Internet انتخاب کنید به دلیل نصب شدن یک سری از Package ها به صورت پیش فرض

آموزش Migrations و EntityFramework

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

 آموزش Migrations و EntityFramework

برای استفاد از EF Code First بهتر است از نسخه Migrations استفاده کنید برای استفاده از این نسخه می بایست ابتدا EF را نصب نمایید


Install-Package EntityFramework

 

 و سپس دستور


Enable-Migrations

را اجرا کنید اگر پروژه را قبلا با  Migrations اجرا کردید و حال می خواهید نسخه EntityFramework تغییر دهید و مجدد Migrations را فعال کنید حتما دیتابیس را حذف کنید به این دلیل که مشکلات زیادی را خواهید داشت اگر داده ارزشمندی در دیتابیس دارید می توانید برای از بین نرفتن داده ها اطلاعات جدول Migrations_ که در دیتابیس شما وجود دارد را حذف کنید

آموزش Remote در asp.net mvc

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

 آموزش 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 UserName { get; set; }

        [Required]
        [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]

        [DataType(DataType.Password)]
        [Display(Name = "New password")]
        public string NewPassword { get; set; }

        [DataType(DataType.Password)]
        [Display(Name = "Confirm new password")]
        [Compare("NewPassword", ErrorMessage = "The new password and confirmation password do not match.")]

        public string ConfirmPassword { get; set; }

    }

}

ادامه مطلب...

طراحی یک مدل از روی EDMX

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

آموزش asp.net mvc

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

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

ادامه مطلب...

موتورهای View در asp.net mvc

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

آموزش asp.net mvc

همانطورکه می دانید موتورهای زیادی برای طراحی view سایت، در تکنولوژی MVC وجود دارد که دو موتور پیشنهادی از سوی مایکروسافت ASPX  و موتور قدرمتند Razor می باشد. علاوه بر این دو موتور یا به اصطلاح view Engine، موتور های دیگری نیز توسط گروه های مختلف طراحی گردیده است که 4 موتور پیشرو در این عرصه موتورهای spark، NHalm، NVelocity و Brail می باشد. NVelocity بر پایه Java apache و NHalm برپایه Ruby on Rails است.

ادامه مطلب...

using کردن در view

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

آموزش asp.net mvc

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

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

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

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

 

 

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


  @{
           MvcApplication2.App_Code.Class1 c = new MvcApplication2.App_Code.Class1();
           c.rets();
}

 

اما اگر به یک فضای نام در تمامی viewها نیاز دارید کافی است آن را در فایل web configیی که در فولدر view ها قراردارد، به صورت زیر اضافه کنید:


<namespaces>
        <add namespace="System.Web.Mvc" />
        <add namespace="MvcApplication2.App_Code"/>
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Optimization"/>
        <add namespace="System.Web.Routing" />
      </namespaces>

آموزش html Healper

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

آموزش asp.net mvc

در بیشتر مواقع شما نیاز دارید تا یک html Healper را ایجاد نمایید و از ان برای جلوگیری از تکرار دستورات و یا ایجاد یک خروجی مناسب استفاده کنید. برای این فرایند کافی است ابتدا یک کنترلر به صورت زیر با نوع empty ایجاد کنید:


namespace MvcApplication2.Controllers
{
   public class SampleController : Controller
    {
        // GET: /Sample/
        public ActionResult Index()
        {
            List List = new List();
            List.Add("Esmaeil");
            List.Add("Mojtaba");
            List.Add("Reza");
            List.Add("Hasan");
            List.Add("Ali");
            ViewBag.List = List;
            return View();
        }
    }
}

حال view ای ایجاد و کد زیر را به آن اضافه کنید:

ادامه مطلب...

آموزش TagBuillder

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

آموزش asp.net mvc

یکی از روش های تولید تگ های HTML  اسنفاده از کلاس TagBuilder  می باشد. این کلاس خصوصیات های زیادی را ارائه می دهد که پرکاربردترین آن ها را به همراه یک مثال ارائه داده شده است.

یک کنترلر جدید با نام Sample ایجاد کنید و سپس کد زیر را به آن اضافه نمایید:

namespace ExternalHtml.Controllers

{
    public class SampleController : Controller

    {
         public MvcHtmlString CreateTagBuilder()

        {
              TagBuilder tagBuilderSpan = new TagBuilder("div");

            tagBuilderSpan.SetInnerText("کلمه عبور");

            TagBuilder tagBuilder = new TagBuilder("input");

            tagBuilder.AddCssClass("inputTypeClass");

            tagBuilder.Attributes.Add("type", "password");

            tagBuilder.GenerateId("input~TagBuilder");

            tagBuilder.IdAttributeDotReplacement = "input_TagBuilder";//Replace ~ char with _

            tagBuilder.MergeAttribute("enable", "false");//set enable with false for understand below tag

            tagBuilder.MergeAttribute("enable", "true", true);//true means exist tag replace and false denial tag

            tagBuilderSpan.InnerHtml += tagBuilder.ToString();

            return new MvcHtmlString(tagBuilderSpan.ToString());}

        //

        // GET: /Sample/

        public ActionResult Index()

        {
            ViewBag.TagBuilder= CreateTagBuilder();

           return View();
        }
    }
} 



 

ادامه مطلب...

مرجع HTML Helper

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

آموزش ASP.NET MVC

در این مطلب قصد داریم کنترل های HTML Helper را معرفی نماییم. متناسب های با کنترل های HTML کنترلهایی را MVC ارائه می دهد که می توانید فرم های پویا برای ثبت اطلاعات طراحی نمایید:

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

برای شروع کار یک پروژه MVC ایجاد و سپس نوع آن را empty انتخاب کنید، حال یک کنترلر با نام Sample ایجاد و سپس view مربوطه را نیز ایجاد کنید و دستورات زیر را در view قرار دهید:

ادامه مطلب...
up
ما را در گوگل محبوب کنید