PDA

View Full Version : سوال: ّبروزرسانی table بوسیله json



morika
سه شنبه 21 مرداد 1393, 17:21 عصر
سلام
من توی صفحه یه تکست باکس برای اظافه کردن آیتم دارم و زیرش هم یه table برای اینکه تمام آیتم های ثبت شده رو نشون بده.

@model ParsisaCMS.ViewModels.AddressViewModel@using (Ajax.BeginForm("InsertState", "Dashboard", new AjaxOptions { HttpMethod = "Post", UpdateTargetId = "StateTable" }))
{
@Html.AntiForgeryToken();
<div class="form-horizontal">
<div class="row">
<!-- Group -->
<div class="form-group margin-none innerB col-md-12">
<label class="col-md-1 control-label">:نام استان</label>
<div class="col-md-4">
@Html.TextBoxFor(modelItem => Model.State.Name, new { @class = "form-control" })
@Html.ValidationMessageFor(modelItem => Model.State.Name)
</div>
<div class="col-md-5">
<p class="muted">
نام استان که مي خواهيد اضافه کنيد
</p>
</div>
<div class="col-md-2">
<button type="submit" class="btn btn-primary"><i class="fa fa-fw fa-check-square-o"></i> اضافه کردن</button>
</div>
</div>
</div>
<br>
<br>
<div class="widget-head">
<h4 class="heading">استان هاي ثبت شده</h4>
</div>
<div class="row">
<div class="col-md-8" id="StateTable">
<table class="table">
<!-- Table heading -->
<thead>
<tr>
<th class="">
رديف
</th>
<th>
استان
</th>
<th>
تعداد شهر ها
</th>
<th>
مديريت
</th>
</tr>
</thead>
<!-- // Table heading END -->
<!-- Table body -->
<tbody>
<!-- Table row -->
<!-- // Table row END -->
<!-- Table row -->
@{int i = 1;
foreach (var item in Model.States)
{
<tr>
<td class="center">
@i
@{ i++; }
</td>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
<td>
10
</td>
<td>
<a href="#" class="btn btn-sm2 btn-danger"><i class="fa fa-times btn-sm2i"></i>حذف</a>
</td>
</tr>
}


}


<!-- // Table row END -->
</tbody>
<!-- // Table body END -->
</table>
</div>
</div>
</div>
<div class="separator line bottom">
</div>
}
حالا میخوام وقتی دکمه اضافه کردن رو زدم آیتم ثبت شده بدون refresh شدن صفحه به جدول زیر اظافه بشه. همه جا این کارو با partialview انجام دادن. می خوام بدونم با میشه با json اینکارو انجاد داد تا دیگه نیازی به partialview نباشه؟
اینم کد کنترلر هستش:
[HttpPost] [ValidateAntiForgeryToken]
public ActionResult InsertState(AddressViewModel viewModel)
{
if (ModelState.IsValid)
{
State state = new State();
state.Name = viewModel.State.Name;
db.States.Add(state);
db.SaveChanges();


AddressViewModel stateModel = new AddressViewModel();
stateModel.States = db.States.ToList();
return Json(stateModel, JsonRequestBehavior.AllowGet);
}


return View();
}
همین کدی رو که نوشتم وقتی اجرا می کنم همه چیز درسته جز اینکه بعداز ثبت کردن table کلا خالی میشه و هیچ چیزی توش نمایش داده نمیشه
ممنون