Hi sir/mam
i'm doing CRUD operation in a single view but when i use two model on the top it is showing an error
@model CghPortal.Models.RolesModel
@model IEnumerable<CghPortal.Models.RolesModel>
@{
ViewBag.Title = "Roles";
Layout = "~/Views/Shared/Admin.cshtml";
}
@Styles.Render("~/MainContent/bower_components/datatables.net-bs/css/dataTables.bootstrap.min.css")
<section class="content-header">
<h1>
User Roles
<!-- <small>Preview</small> -->
</h1>
<ol class="breadcrumb">
<li><a href="#"><i class="fa fa-dashboard"></i> Home</a></li>
<li><a href="#">Manage users</a></li>
<li class="active">User roles</li>
</ol>
</section>
<br>
<div class="modal fade" id="successModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="box-header with-border">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<div class="box box-primary">
<div class="box-body">
<h3>@ViewBag.Message</h3>
</div>
<div class="box-footer">
<button type="button" class="btn btn-default pull-right" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>
<div class="modal fade" id="modal-mrole">
<div class="modal-dialog">
<div class="modal-content">
<div class="box-header with-border">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
<h3 class="box-title"> New Role</h3>
</div>
<div class="modal-body">
<div class="box box-primary">
<!-- /.box-header -->
<!-- form start -->
@using (Html.BeginForm("InsertMainRoles", "Roles", FormMethod.Post))
{
<div class="box-body">
<div class="col-md-8">
<div class="form-group">
@Html.LabelFor(model => model.RoleName, new { @for = "rolename" })
@Html.TextBoxFor(model => model.RoleName, new { @id = "roleid", @class = "form-control", @placeholder = "Role Name", @Required = "required" })
@Html.ValidationMessageFor(model => model.RoleName)
</div>
</div>
<div class="clearfix"></div>
<div class="col-md-6">
<div class="form-group">
@Html.LabelFor(model => model.status, new { @for = "roleStatus" })
@Html.DropDownListFor(model => model.status, new[]{
new SelectListItem(){ Text = "Active", Value = "1" , Selected=true},
new SelectListItem(){ Text = "In-Active", Value = "0",Disabled=true}
}, new { @class= "form-control", style = "cursor: pointer;" })
@Html.ValidationMessageFor(model => model.status)
</div>
</div>
</div>
<!-- /.box-body -->
<div class="box-footer">
<button type="submit" class="btn btn-primary">Submit</button>
<button type="button" class="btn btn-default pull-right" data-dismiss="modal">Close</button>
</div>
}
</div>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>
<button type="button" class="btn btn-primary pull-right" data-toggle="modal" data-target="#modal-mrole" style="margin-right:20px; ">
Add New Role
</button>
<br><br>
<section class="content">
<div class="row">
<div class="col-xs-12">
<div class="box box-primary">
<div class="box-header">
<h3 class="box-title">Roles List</h3>
</div>
<div class="box-body">
<table id="example1" class="table table-bordered table-striped">
<thead>
<tr>
<th>Sl no</th>
<th>Role Name</th>
<th>Status</th>
<th>Action</th>
</tr>
</thead>
<tbody>
@foreach (var item in Model)
{
int i = 1;
<tr>
<td>
@Html.DisplayFor(module => item.RoleName)
</td>
<td>
@Html.DisplayFor(modelItem => item.Status)
</td>
<td></td>
</tr>
i++;
}
</tbody>
<tfoot>
</tfoot>
</table>
</div>
</div>
</div>
</div>
</section>
<div class="modal fade" id="modal-subrole">
<div class="modal-dialog">
<div class="modal-content">
<div class="box-header with-border">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
<h3 class="box-title">Add New Sub Role</h3>
</div>
<div class="modal-body">
<div class="box box-primary">
<!-- /.box-header -->
<!-- form start -->
@using (Html.BeginForm("InsertSubRoles", "Roles", FormMethod.Post))
{
<div class="box-body">
<div class="col-md-8">
<div class="form-group">
@Html.LabelFor(model => model.SubRoleName, new { @for = "subrole" })<span>*</span>
@Html.TextBoxFor(model => model.SubRoleName, new { @class = "form-control", @id = "subrole", @placeholder = "Sub Role Name", @Required = "required" })
</div>
</div>
<div class="clearfix"></div>
<div class="col-md-6">
<div class="form-group">
<label>Main Role</label>
<select class="form-control">
<option value="" selected disabled>Select</option>
<option value="1">Main Role 1</option>
<option value="0">Main Role 2</option>
</select>
</div>
</div>
<div class="clearfix"></div>
<div class="col-md-6">
<div class="form-group">
@Html.LabelFor(model => model.status, new { @for = "roleStatus" })<span>*</span>
@Html.DropDownListFor(model => model.status, new[]{
new SelectListItem(){ Text = "Active", Value = "1" , Selected=true},
new SelectListItem(){ Text = "In-Active", Value = "0",Disabled=true}
}, new { @class = "form-control", style = "cursor: pointer;" })
</div>
</div>
</div>
<!-- /.box-body -->
<div class="box-footer">
<button type="submit" class="btn btn-primary">Submit</button>
<button type="button" class="btn btn-default pull-right" data-dismiss="modal">Close</button>
</div>
}
</div>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>
<button type="button" class="btn btn-primary pull-right" data-toggle="modal" data-target="#modal-subrole" style="margin-right:20px; ">
Add New Sub Role
</button>
<br><br>
<section class="content">
<div class="row">
<div class="col-xs-12">
<div class="box box-primary">
<div class="box-header">
<h3 class="box-title">Sub Roles List</h3>
</div>
<!-- /.box-header -->
<div class="box-body">
<table id="example2" class="table table-bordered table-striped">
<thead>
<tr>
<th>Sl no</th>
<th>Main Role Name</th>
<th>Sub Role Name</th>
<th>Status</th>
</tr>
</thead>
<tbody></tbody>
<tfoot>
</tfoot>
</table>
</div>
<!-- /.box-body -->
</div>
<!-- /.box -->
</div>
<!-- /.col -->
</div>
<!-- /.row -->
</section>
@Scripts.Render("~/MainContent/bower_components/jquery/dist/jquery.min.js")
<!-- jQuery UI 1.11.4 -->
@Scripts.Render("~/MainContent/bower_components/jquery-ui/jquery-ui.min.js")
@Scripts.Render("~/MainContent/bower_components/datatables.net/js/jquery.dataTables.min.js")
@Scripts.Render("~/MainContent/bower_components/datatables.net-bs/js/dataTables.bootstrap.min.js")
<script>
$(function () {
$('#example1').DataTable()
$('#example2').DataTable({
'paging': true,
'lengthChange': true,
'searching': true,
'ordering': true,
'info': true,
'autoWidth': true
})
})
</script>
@if (ViewBag.Message != null)
{
<script>
$(function () {
alert(ViewBag.Message);
});
</script>
}
this is my controller
using CghPortal.Models;
using System.Web.Mvc;
namespace CghPortal.Controllers
{
public class RolesController : Controller
{
// GET: Roles
public ActionResult Roles()
{
RolesModelDal sdb = new RolesModelDal();
ModelState.Clear();
return View(sdb.GetMainRolesList());
}
public ActionResult InsertMainRoles(RolesModel objmod)
{
try
{
RolesModelDal sdb = new RolesModelDal();
int result = sdb.insertData(objmod);
if (result ==1)
{
ViewBag.Message = "Role Added Successfully";
ModelState.Clear();
}
else if(result==-1)
{
ViewBag.Message = "Role Already Exists!";
ModelState.Clear();
}
else
{
ViewBag.Message = "Unsucessfull";
ModelState.Clear();
}
return RedirectToAction("Roles");
}
catch
{
throw;
}
}
public ActionResult DispalyMainRoles(RolesModel objrmod)
{
return RedirectToAction("Roles");
}
public ActionResult UpdatedMainRoles(RolesModel objrmod)
{
return RedirectToAction("Roles");
}
public ActionResult DeleteMainRoles(RolesModel objrmod)
{
return RedirectToAction("Roles");
}
//Sub Roles Section
public ActionResult InsertSubRoles(RolesModel objrmod)
{
return RedirectToAction("Roles");
}
public ActionResult UpdateSubRoles(RolesModel objrmod)
{
return RedirectToAction("Roles");
}
public ActionResult DeleteSubRoles(RolesModel objrmod)
{
return RedirectToAction("Roles");
}
}
}
this is my model
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
namespace CghPortal.Models
{
public class RolesModelDal
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["CgnPortalWtE"].ToString());
public int insertData(RolesModel objdemo)
{
SqlCommand cmd = new SqlCommand("InsertMainRoles", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@rolename", objdemo.RoleName);
cmd.Parameters.AddWithValue("@status", objdemo.status);
con.Open();
int i = cmd.ExecuteNonQuery();
con.Close();
return i;
}
public List<RolesModel> GetMainRolesList()
{
List<RolesModel> mainrolesList = new List<RolesModel>();
SqlCommand cmd = new SqlCommand("GetMainRolesList", con);
cmd.CommandType = CommandType.StoredProcedure;
SqlDataAdapter sd = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
con.Open();
sd.Fill(dt);
con.Close();
foreach (DataRow dr in dt.Rows)
{
mainrolesList.Add(
new RolesModel
{
RoleName = Convert.ToString(dr["RoleName"]),
status = Convert.ToInt32(dr["ActiveFlag"])
});
}
return mainrolesList;
}
}
}