Ajax.BeginForm选项中的Razor语法

时间:2013-12-14 19:24:23

标签: jquery ajax asp.net-mvc razor

我需要将我的Model.ID放入ajax助手中,如下所示

@model Modulerica13.Models.HrMapTrainingPerson

@using (Ajax.BeginForm("updateTrainingPerson", new AjaxOptions
{
    UpdateTargetId = "viewTrainingPerson",
    HttpMethod = "POST",
    InsertionMode = InsertionMode.Replace,
    OnSuccess = "$('#editPersonModal').modal('hide')",

}
))

我想在选择DIV时添加Model.ID。

 OnSuccess = "$('#editPersonModal@(Model.Id)').modal('hide')",

我收到sytnax错误。

2 个答案:

答案 0 :(得分:0)

当您已经处于代码块的中间时,不能使用razor语法。你在这里使用正常的C#代码。您当前的代码实际上只是将“@(Model.Id)”放在字符串的中间。

OnSuccess = String.Format("$('#editPersonModal{0}').modal('hide')", Model.Id)

你还需要在这一行结束时使用逗号,因为它是你实例化的最后一个属性(这就是你得到错误的原因)。

答案 1 :(得分:0)

你可以改变:"$('#editPersonModal" + @Model.Id + "').modal('hide')"

或:

<script type="text/javascript">
   $(function(){
     window.doAfterSuccess = function(){
       var selector = "#editPersonModal" + @Model.Id;
       $(selector).modal('hide');
     }
   });
</script>

并且:

@using (Ajax.BeginForm("updateTrainingPerson", new AjaxOptions
{
    UpdateTargetId = "viewTrainingPerson",
    HttpMethod = "POST",
    InsertionMode = InsertionMode.Replace,
    OnSuccess = "doAfterSuccess",

}