【问题标题】:Razor Ajax.ActionLink Not Updating Html.EditFor ControlRazor Ajax.ActionLink 未更新 Html.EditorFor 控件
【发布时间】:2020-09-23 17:54:49
【问题描述】:

我一直在尝试和搜索以解决这个问题,但无济于事。 我在我的 Razor 文件 (Asp.net MVC) 中使用 Ajax 助手“@Ajax.ActionLink”来更新 html 助手“@Html.EditorFor”控件。当 Ajax 选项“UpdateTargetId”设置为另一个元素(例如 span)时,它可以完美运行,但不适用于 @Html.EditorFor。当应用 Ajax 选项“InsertionMode.ReplaceWith”时,它会将@Html.EditorFor 控件替换为像 span 这样的只读元素。 Ajax 选项“InsertionMode.Replace”不会对@Html.EditorFor 控件应用任何更改。下面的代码示例。感谢您的帮助。

    AjaxOptions objOP_Options = new AjaxOptions();

    objOP_Options.HttpMethod = "GET";

    objOP_Options.UpdateTargetId = ("Cost");

    objOP_Options.InsertionMode = InsertionMode.Replace;


    <td align="left">
       <div class="input-group input-group-sm">
          <span class="input-group-addon">
             small><span class="glyphicon glyphicon-usd"></span></small>
          </span>
          @Html.EditorFor(model => model.Cost, new { htmlAttributes = new { @class = "form- 
                          control", @style = "width:75px", @id = "Cost", @onChange = 
                          "totalCost(); format_num(id)" } })
        </div>
     </td>

     <td>
         @Ajax.ActionLink("Calc. Cost", "Get_Cost", "ControllerName", new
            {
                Param1 = Model.Field1,
                Param2 = Model.Field2,
                Param3 = Model.Field3,
                Param4 = Model.Field4
            }, objOP_Options)
     </td>

      <span id="dataCost"></span>   //this would work when set as UpdateTargetId                    

【问题讨论】:

    标签: c# asp.net ajax model-view-controller razor


    【解决方案1】:

    我采用了另一种方法来解决这个问题。 我没有使用 Ajax.ActionLink,而是在单击按钮时调用了一个 Java Script 函数(它依次调用了另一个实现 Ajax 调用的 Java Script 函数)来更新 Html.EditFor 控件。 希望这对可能有同样问题的人有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-26
      • 2011-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-13
      • 2015-11-15
      相关资源
      最近更新 更多