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

ارسال مقادیر TextBox از View به Controller در ASP.Net MVC Razor
0 0
ارسال مقادیر TextBox از View به Controller در ASP.Net MVC Razor

با سلام در این مقاله با یک مثال توضیح خواهیم داد که چگونه مقادیر TextBox را از طریق View به Controller در ASP.Net MVC Razor ارسال کنید.
مقادیر TextBox با استفاده از کلاس Model از View به Controller منتقل می شود و بعد در بانک اطلاعات SQL Server با استفاده از ADO.Net در ASP.Net MVC Razor درج می شوند.

بانک اطلاعات
 از جدول مشتریان به شرح زیر استفاده کرده ایم. CustomerId یک ستون افزایش خودکار (هویت) است.

 قبلاً چند رکورد در جدول وارد کرده ایم.

توجه : می توانید جدول بانک اطلاعاتی SQL را با کلیک روی لینک دانلود کنید. فایل SQL را بارگیری کنید

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

using System.Configuration;
using System.Data.SqlClient;

Model
در زیر یک کلاس Modelبه نام CustomerModel با سه ویژگی یعنی CustomerId ، نام و کشور ارائه شده است.

public class CustomerModel
{
    ///<summary>
    /// Gets or sets CustomerId.
    ///</summary>
    public int CustomerId { get; set; }
 
    ///<summary>
    /// Gets or sets Name.
    ///</summary>
    public string Name { get; set; }
 
    ///<summary>
    /// Gets or sets Country.
    ///</summary>
    public string Country { get; set; }
}

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

public class HomeController : Controller
{
    // GET: Home
    public ActionResult Index()
    {
        return View();
    }
 
    [HttpPost]
    public ActionResult Index(CustomerModel customer)
    {
        string constr = ConfigurationManager.ConnectionStrings["Constring"].ConnectionString;
        using (SqlConnection con = new SqlConnection(constr))
        {
            string query = "INSERT INTO Customers(Name, Country) VALUES(@Name, @Country)";
            query += " SELECT SCOPE_IDENTITY()";
            using (SqlCommand cmd = new SqlCommand(query))
            {
                cmd.Connection = con;
                con.Open();
                cmd.Parameters.AddWithValue("@Name", customer.Name);
                cmd.Parameters.AddWithValue("@Country", customer.Country);
                customer.CustomerId = Convert.ToInt32(cmd.ExecuteScalar());
                con.Close();
            }
        }
 
        return View(customer);
    }
}

View
مرحله بعدی اضافه کردن یک View برای Controller است و در ضمن شما باید کلاس CustomerModel را که قبلاً ایجاد شده است انتخاب و اضافه کنید.

 

در داخل View ، در اولین خط کلاس CustomerModel به عنوان Model برای View اعلام می شود.
View شامل یک فرم HTML است که با استفاده از روش Html.BeginForm با پارامترهای زیر ایجاد شده است.
ActionName - نام عمل در این حالت  Index است.
ControllerName - نام Controller در این حالت Home است.
FormMethod - این روش فرم یعنی GET یا POST را مشخص می کند. در این حالت روی POST تنظیم می شود.
یک قسمت TextBox وجود دارد که برای گرفتن مقدار برای Name با استفاده از روش Html.TextBoxFor ایجاد شده است. در حالی که برای گرفتن مقدار کشور ، یک گزینه DropDownList با Country با استفاده از عملکرد Html.DropDownListFor ایجاد می شود.
همچنین در انتهای فرم یک دکمه ارسال وجود دارد و وقتی دکمه کلیک می شود ، فرم ارسال می شود.
پس از ارسال فرم ، Model برگشتی ازController برای NULL بررسی می شود و اگر NULL نشود ، CustomerId تازه وارد شده با استفاده از JavaScript Alert MessageBox نمایش داده می شود.

@model ADO_Net_MVC.Models.CustomerModel
 
@{
    Layout = null;
}
 
<!DOCTYPE html>
 
<html>
<head>
    <meta name="viewport" content="width=device-width"/>
    <title>Index</title>
    <style type="text/css">
        body {
            font-family: Arial;
            font-size: 10pt;
        }
 
        table {
            border: 1px solid #ccc;
            border-collapse: collapse;
            background-color: #fff;
        }
 
        table th {
            background-color: #B8DBFD;
            color: #333;
            font-weight: bold;
        }
 
        table th, table td {
            padding: 5px;
            border: 1px solid #ccc;
        }
 
        table, table table td {
            border: 0px solid #ccc;
        }
 
        input[type=text], select {
            width: 150px;
        }
    </style>
</head>
<body>
    @using (Html.BeginForm("Index", "Home", FormMethod.Post))
    {
        <table cellpadding="0" cellspacing="0">
            <tr>
                <th colspan="2" align="center">Customer Details</th>
            </tr>
            <tr>
                <td>Name: </td>
                <td>
                    @Html.TextBoxFor(m => m.Name)
                </td>
            </tr>
            <tr>
                <td>Country: </td>
                <td>
                   @Html.DropDownListFor(m => m.Country, new List<SelectListItem>
                   { new SelectListItem{Text="India", Value="India"},
                     new SelectListItem{Text="China", Value="China"},
                     new SelectListItem{Text="Australia", Value="Australia"},
                     new SelectListItem{Text="France", Value="France"},
                     new SelectListItem{Text="Unites States", Value="Unites States"},
                     new SelectListItem{Text="Russia", Value="Russia"},
                     new SelectListItem{Text="Canada", Value="Canada"}},
                     "Please select")
                </td>
            </tr>
            <tr>
                <td></td>
                <td><input type="submit" value="Submit"/></td>
            </tr>
        </table>
    }
 
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
    @if (Model != null)
    {
        <script type="text/javascript">
            $(function () {
                alert("Inserted Customer ID: " + @Model.CustomerId);
            });
        </script>
    }
</body>
</html>

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

بعد از درج داده ها CustomerId نمایش داده می شود .

 


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

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