Click here to Skip to main content
15,893,622 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
This is my code in modeview:-
C#
public partial class DistriputeMultipleNotificatiponsViewModel
    {
        public virtual IEnumerable<ClientsNotifications> list { get; set; }
        public virtual DistrbuteTechToNotifi create { get; set; }
        public virtual ClientsNotifications displayname { get; set; }
        
    }


View:-
HTML
@model WebProject.Models.DistriputeMultipleNotificatiponsViewModel
@using WebProject.Models.BusinessLayer

@using App_GlobalResources;
@{
    ViewBag.Title = WhiteWhaleLanguage.Index;
}

@using (Html.BeginForm("SendMultipleNotificationToTechnical", "ClientsNotifications", FormMethod.Post))
{
    @Html.ValidationSummary()
    @Html.AntiForgeryToken()
    <div class="box box-DG">
        <div class="box-header">
            <span style="color:#2D69B7"></span>
            <h3 class="box-title">@WhiteWhaleLanguage.NotificationsList</h3>
        </div>
        <div class="box-body">
            <table id="example1" class="table table-bordered table-striped box-DG">
                <thead>
                    <tr>
                        <th>
                            @Html.DisplayNameFor(model => model.displayname.NotificationsTypes.Name_ar)
                        </th>
                        <th>
                            @Html.DisplayNameFor(model => model.displayname.ID)
                        </th>
                        <th>
                            @Html.DisplayNameFor(model => model.displayname.ServiceOrderNo)
                        </th>
                        <th>
                            @Html.DisplayNameFor(model => model.displayname.ClientId)
                        </th>
                        <th>
                            @Html.DisplayNameFor(model => model.displayname.NotificationDate)
                        </th>
                        <th>
                            @Html.DisplayNameFor(model => model.displayname.LocationCenterID)
                        </th>
                        <th>
                            @Html.DisplayNameFor(model => model.displayname.SeenDate)
                        </th>
                        <th></th>
                    </tr>
                </thead>
                <tbody>
                    @foreach (var item in Model.list)
                    {
                        <tr>
                            <td>
                                @Html.DisplayFor(modelItem => item.NotificationsTypes.Name_ar)
                            </td>
                            <td>
                                @Html.DisplayFor(modelItem => item.ID)
                            </td>
                            <td>
                                @Html.DisplayFor(modelItem => item.ServiceOrderNo)
                            </td>
                            <td>
                                @Html.DisplayFor(modelItem => item.ClientId)
                            </td>
                            <td>
                                @Html.DisplayFor(modelItem => item.NotificationDate)
                            </td>
                            <td>
                                @Html.DisplayFor(modelItem => item.LocationCenterID)
                            </td>
                            @if (item.SeenDate != null)
                            {
                                <td>
                                    @Html.DisplayFor(modelItem => item.SeenDate.Value.Day)/@Html.DisplayFor(modelItem => item.SeenDate.Value.Month)/@Html.DisplayFor(modelItem => item.SeenDate.Value.Year) @Html.DisplayFor(modelItem => item.SeenDate.Value.Minute):@Html.DisplayFor(modelItem => item.SeenDate.Value.Hour)
                                </td>
                            }
                            else
                            {
                                <td></td>
                            }
                            <td>
                                @Html.ActionLink(WhiteWhaleLanguage.Details, "Details", new { id = item.ID })
                                @*<div class="btn-group btn-default">
                                        <button type="button" class="btn btn-default btn-sm ">@WhiteWhaleLanguage.Action</button>
                                        <button type="button" class="btn btn-default dropdown-toggle btn-sm  " data-toggle="dropdown" aria-expanded="false">
                                            <span class="caret"></span>
                                            <span class="sr-only">Toggle Dropdown</span>
                                        </button>
                                        <ul class="dropdown-menu btn-sm " role="menu">
                                            @if (BusinessLayer._CheckPErmission("ClientsNotifications", "Edit"))
                                            {
                                                <li>@Html.ActionLink(WhiteWhaleLanguage.Edit, "Edit", new { id = item.ID })</li>
                                            }

                                            <li>@Html.ActionLink(WhiteWhaleLanguage.Details, "Details", new { id = item.ID })</li>
                                        </ul>
                                    </div>*@
                            </td>
                        </tr>
                    }
                </tbody>
            </table>
        </div>
    </div>
    <div class="container">
        <br />
        <div class="col-lg-11">
            <div class="panel panel-primary">
                <div class="panel-heading">
                    <h4 class="panel-title">
                        <a data-toggle="" data-parent="#accordion" href="#filterPanel">   @WhiteWhaleLanguage.DistributionTechnial </a>
                        <span class="pull-right panel-collapse-clickable" data-toggle="collapse" data-parent="#accordion" href="#filterPanel">
                            ^__i class="glyphicon glyphicon-chevron-down">
                        </span>
                    </h4>
                </div>
                <div id="filterPanel" class="panel-collapse panel-collapse collapse">
                    <div class="panel-body">
                        <div class="form-group">
                            @Html.LabelFor(model => model.create.CenterTechnical.TechName, new { @class = "col-md-2 control-label" })
                            <div class="col-md-4">
                                @Html.DropDownListFor(model => model.create.CenterTechnicalID, (SelectList)ViewBag.TechnicalList, WhiteWhaleLanguage.PleaseSelect, new { @class = "form-control" })
                                @Html.ValidationMessageFor(model => model.create.CenterTechnicalID, "", new { @class = "text-danger" })
                            </div>
                        </div>
                        <div class="box-footer">
                            <input type="submit" name="" value=@WhiteWhaleLanguage.SendReply , class="btn btn-primary btn-xl" />
                            @Html.ActionLink(WhiteWhaleLanguage.BackToList, "Index", null, new { @class = "btn btn-default btn-sm" })
                        </div>
                    </div>
                </div>

            </div>
        </div>
    </div>
}


this is ActionResult in controller:-
C#
public ActionResult SendMultipleNotificationToTechnical()
        {
            DistriputeMultipleNotificatiponsViewModel model = new DistriputeMultipleNotificatiponsViewModel();

            if(ModelState.IsValid)
            {
                string constr = ConfigurationManager.ConnectionStrings["WhiteWhaleModel"].ConnectionString;
                foreach (var id in model.list)
                {
                    using (SqlConnection con = new SqlConnection(constr))
                    {
                        string query = " INSERT INTO DistrbuteTechToNotifi(ClientsNotificationsID,LocationCenterID, CenterTechnicalID, VisiteDate, DistributeDate) ";
                        query = query + " VALUES(@ClientsNotificationsID,@LocationCenterID, @CenterTechnicalID, @VisiteDate, @DistributeDate); ";
                        query = query + " SELECT SCOPE_IDENTITY(); ";
                        using (SqlCommand cmd = new SqlCommand(query))
                        {
                            cmd.Connection = con;
                            con.Open();
                            cmd.Parameters.AddWithValue("@ClientsNotificationsID", model.create.ClientsNotifications.ID);
                            cmd.Parameters.AddWithValue("@LocationCenterID", model.create.LocationCenterID);
                            cmd.Parameters.AddWithValue("@CenterTechnicalID", model.create.CenterTechnicalID);
                            cmd.Parameters.AddWithValue("@VisiteDate", model.create.VisiteDate);
                            cmd.Parameters.AddWithValue("@DistributeDate", DateTime.UtcNow);
                            cmd.ExecuteNonQuery();
                            con.Close();
                        }

                        using (SqlConnection con2 = new SqlConnection(constr))
                        {
                            string query2 = " Update ClientsNotifications set StateID = 4 ";
                            query2 = query2 + " Where ID = @ClientsNotificationsID  ";
                            using (SqlCommand cmd2 = new SqlCommand(query2))
                            {
                                cmd2.Connection = con2;
                                con2.Open();
                                cmd2.Parameters.AddWithValue("@ClientsNotificationsID", model.create.ClientsNotificationsID);
                                cmd2.ExecuteNonQuery();
                                con2.Close();
                            }
                        }

                        return View("Index");
                    }
                }
            }

            return View(model);
        } 


What I have tried:

i try to insert multiple row with one value from dropdownlist and i use viewmodel ,
but (model.list) give me null value
Posted

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900