我一直在尝试并寻找解决这个问题,但无济于事。 我正在使用 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
我应用了另一种方法来解决这个问题。 我没有使用 Ajax.ActionLink,而是在单击按钮时调用了一个 Java 脚本函数(该函数依次调用了实现 Ajax 调用的另一个 Java 脚本函数(来更新 Html.EditFor 控件。 希望这对可能遇到相同问题的人有所帮助。