私はwebgridを持っており、各行に対して、行を修正するためのfancyboxを開くためのリンクがあります。WebGrid(mvc3)のリンクを変更できません。(初回は動作しますが、2回目は動作しません)
ここpartialview上のWebGrid:
@model IEnumerable<PDSI.Model.Models.Vaccin>
@{
var gridVaccins = new WebGrid(source: Model);
}
@gridVaccins.GetHtml(
tableStyle: "general_table",
columns:
gridVaccins.Columns(
gridVaccins.Column(
columnName: "Vaccin_Type",
canSort: false,
header: "Type"
),
gridVaccins.Column(
canSort: false,
columnName: "Vaccin_Site",
header: "Site",
format: (item) => item.Vaccin_Site.Site
),
gridVaccins.Column(
canSort: false,
columnName: "Date_Recu",
header: "Date reçue",
format: (item) => item.Date_Recu == null ? "" : item.Date_Recu.Date.ToLongDateString()
),
gridVaccins.Column(
canSort: false,
columnName: "Refuse",
header: "Refusé",
format: (item) => item.Refuse ? @Html.Raw("oui") : @Html.Raw("non")
),
gridVaccins.Column(
canSort: false,
header: "",
format: @<a class="editVaccin" href="/Patient/EditVaccin/@item.Id">Modifier</a>
),
gridVaccins.Column(
canSort: false,
header: "",
format: @<a href="/Patient/DeleteVaccin/@item.Id">Supprimer</a>
)
)
)
<script type="text/javascript">
$('a.editVaccin').fancybox();
</script>
私はそれがこのコントローラに行くのリンクをクリックしてください:
public ActionResult EditVaccin(int id)
{
var model = _vaccinServices.GetVaccin(id);
ViewBag.VaccinSite = _vaccinServices.GetVaccinSite();
return PartialView("VaccinEditor", model);
}
私はそれをクリックして最初の時間は、私が取得するために、コントローラに入ります私のモデルは、行を変更して、モデルをfancyboxから保存してテーブルを更新した後、同じ行を変更するリンク "Modifier"を2回クリックすると、コントローラ(EditVaccin)に移動しません。 。 hrefは2回目のクリックでは機能していません。
2回目のクリックは、最初のクリックから取得したモデル情報でのみファンシーボックスを開きます。
これはIE 8-9でのみ発生し、Google Chromeで正常に動作していますが、IEを使用する必要があります。だから私はそれを動作させるために何をする必要がありますか?
これは私のWebGridである図である。
<div style="width: 100%;">
<a id="addVaccin" href="/Patient/AddVaccin/">Ajouter un vaccin</a>
<br />
<br />
<div id="main_vaccins">@Html.Action("GetVaccins")</div>
</div>
<script type="text/javascript">
$('a#addVaccin').fancybox();
</script>
これはWebGridを有する部分図をロードするコントローラである。
public ActionResult GetVaccins()
{
var listVaccins = _vaccinServices.GetVaccinsByPatient(SessionContext.IdPatient);
return PartialView("VaccinsTable", listVaccins);
}
行を編集するpartialview:
@model PDSI.Model.Models.Vaccin
<script src="../../Scripts/jquery.ui.datepicker.js" type="text/javascript"></script>
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
<fieldset>
<legend>Vaccin</legend>
@Html.HiddenFor(model => model.Id_Patient)
@Html.HiddenFor(model => model.Id)
<table>
<tr>
<td>@Html.LabelFor(model => model.Vaccin_Type)
</td>
<td>@Html.TextBoxFor(model => model.Vaccin_Type, new { @maxlength = "20" })
</td>
</tr>
<tr>
<td>@Html.LabelFor(model => model.Vaccin_Site.Site)
</td>
<td>@Html.DropDownList("Vaccin_Site.Id", new SelectList(ViewBag.VaccinSite as System.Collections.IEnumerable, "Id", "Site", Model.Vaccin_Site.Id))
</td>
</tr>
<tr>
<td>@Html.LabelFor(model => model.Date_Recu)
</td>
<td>
@Html.TextBox("Date_Recu", Model.Date_Recu == null ? "" : Model.Date_Recu.Value.ToLongDateString(), new { @class = "date" })
@Html.ValidationMessageFor(model => model.Date_Recu)
</td>
</tr>
<tr>
<td>@Html.LabelFor(model => model.Refuse)
</td>
<td>@Html.CheckBoxFor(model => model.Refuse)
</td>
</tr>
</table>
<p>
<input type="submit" value="Enregistrer" /></p>
</fieldset>
}
<script type="text/javascript">
$(document).ready(function() {
$("#tabs").tabs();
$('.date').datepicker();
});
$('form[action="/Patient/AddVaccin/"]').submit(function (event) {
$.ajax({
url: "/Patient/AddVaccin/",
type: "POST",
dataType: 'html',
data: $('form[action*="/Patient/AddVaccin/"]').serialize(),
success: function (result) {
$.fancybox.close();
$('#main_vaccins').text('');
$('#main_vaccins').html(result);
},
complete: function() {
},
error: function (error) {
alert(error.toString());
}
});
event.preventDefault();
});
$('form[action*="/Patient/EditVaccin/"]').submit(function (event) {
$.ajax({
url: "/Patient/EditVaccin/",
type: "POST",
dataType: 'html',
data: $('form[action*="/Patient/EditVaccin/"]').serialize(),
success: function (result) {
$.fancybox.close();
$('#main_vaccins').text('');
$('#main_vaccins').html(result);
},
complete: function() {
},
error: function (error) {
alert(error);
}
});
event.preventDefault();
});
</script>
編集のコントローラ(httpost):
[HttpPost]
public ActionResult EditVaccin(Vaccin model)
{
_vaccinServices.Edit(model);
return RedirectToAction("GetVaccins");
}
最後に、この仕事をしているの助けを