توضیحات و دانلود

عبور Model از View به Controller با استفاده از ActionLink در ASP.Net MVC
0 0
عبور Model از View به Controller با استفاده از ActionLink در ASP.Net MVC

با سلام در این مقاله با یک مثال توضیح خواهیم داد که چگونه می توان داده های Model  (شی) را از View به Controller با استفاده از ActionLink در ASP.Net MVC 5 Razor انتقال داد.
@ Html.ActionLink به عنوان یک HTML Anchor Tag (HyperLink) ارائه می شود و از این رو درخواست GET را به روش Action Controller ارائه می دهد که نمی توان برای ارسال داده های Model  (شی) استفاده شود.

Model 
در زیر یک کلاس Model  به نام PersonModel با چهار ویژگی یعنی PersonId ، نام ، جنسیت و شهر وجود دارد.

public class PersonModel
{
    ///<summary>
    /// Gets or sets PersonId.
    ///</summary>
    public int PersonId { get; set; }
 
    ///<summary>
    /// Gets or sets Name.
    ///</summary>
    public string Name { get; set; }
 
    ///<summary>
    /// Gets or sets Gender.
    ///</summary>
    public string Gender { get; set; }
 
    ///<summary>
    /// Gets or sets City.
    ///</summary>
    public string City { get; set; }
}

Controller
 باید یک کلاس Controller را به پروژه خود اضافه کنید. دو روش Action با نام Index وجود دارد ، یکی برای اجرای عملیات GET و دیگری برای انجام عملیات POST.
متد Action برای عملیات POST یک شیء از کلاس PersonModel را به عنوان پارامتر می پذیرد. مقادیر ارسال شده از فرم در داخل View از طریق این پارامتر دریافت می شود.

public class HomeController : Controller
{
    // GET: Home
    public ActionResult Index()
    {
        return View();
    }
 
    [HttpPost]
    public ActionResult Index(PersonModel person)
    {
        int personId = person.PersonId;
        string name = person.Name;
        string gender = person.Gender;
        string city = person.City;
 
        return View();
    }
}

View
در داخل View ، در اولین خط کلاس PersonModel به عنوان Modelبرای View اعلام می شود.
View شامل یک فرم HTML است که با استفاده از روش Html.BeginForm با پارامترهای زیر ایجاد شده است.
ActionName - نام عمل در این حالت Index است.
ControllerName - نام Controller  در این حالت Home است.
FormMethod - این روش فرم یعنی GET یا POST را مشخص می کند. در این حالت روی POST تنظیم می شود.
سه قسمت TextBox وجود دارد که برای گرفتن مقادیر برای PersonId ، نام و شهر با استفاده از روش Html.TextBoxFor ایجاد شده است. در حالی که برای گرفتن مقدار Gender ، DropDownList با سه گزینه با استفاده از عملکرد Html.DropDownListFor ایجاد می شود.
همچنین در انتهای فرم تولید شده با استفاده از روش @ Html.ActionLink یک Submit ActionLink وجود دارد و وقتی ActionLink کلیک کنید، فرم با استفاده از jQuery ارسال می شود.

@model ActionLink_Send_Model_MVC.Models.PersonModel
 
@{
    Layout = null;
}
 
<!DOCTYPE html>
 
<html>
<head>
    <meta name="viewport" content="width=device-width"/>
    <title>Index</title>
</head>
<body>
    @using (Html.BeginForm("Index", "Home", FormMethod.Post))
    {
        <table cellpadding="0" cellspacing="0">
            <tr>
                <th colspan="2" align="center">Person Details</th>
            </tr>
            <tr>
                <td>PersonId: </td>
                <td>
                    @Html.TextBoxFor(m => m.PersonId)
                </td>
            </tr>
            <tr>
                <td>Name: </td>
                <td>
                    @Html.TextBoxFor(m => m.Name)
                </td>
            </tr>
            <tr>
                <td>Gender: </td>
                <td>
                    @Html.DropDownListFor(m => m.Gender, new List<SelectListItem>
                   { new SelectListItem{Text="Male", Value="M"},
                     new SelectListItem{Text="Female", Value="F"}}, "Please select")
                </td>
            </tr>
            <tr>
                <td>City: </td>
                <td>
                    @Html.TextBoxFor(m => m.City)
                </td>
            </tr>
            <tr>
                <td></td>
                <td>@Html.ActionLink("Submit", "", null, new { @id = "submit" })</td>
            </tr>
        </table>
    }
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
    <script type="text/javascript">
        $(function () {
            $("#submit").click(function () {
                document.forms[0].submit();
                return false;
            });
        });
    </script>
</body>
</html>

عکسهای صفحه
فرم

مقادیر ثبت شده در کنترل هنگام ارسال فرم

 

 


دانلود
  • لینک های دانلود دوره های آموزشی تا پایان دوره قابل دانلود می باشد.
  • برای خارج کردن فایل ها از حالت فشرده از ورژن جدید نرم افزار winrar استفاده کنید.
  • برای خارج کردن فایل ها از حالت فشرده لینک های دانلودی که چندین قسمت می باشند فقط قسمت اول را از حالت فشرده خارج کنید.
  • لطفا توضیحات نوشته شده برای مطالب را با دقت بخوانید.
  • برای نمایش فیلم ها می توانید از نرم افزار هایی مانند Km Player , VLC Player یا Media Player Classic استفاده کنید.

ارسال نظر
ارسال پیام به :