gpt4 book ai didi

c# - MVC2 中的 Ajax.BeginForm 错误?? Ajax 用于发布到错误的 Controller ?

转载 作者:太空宇宙 更新时间:2023-11-03 20:39:12 24 4
gpt4 key购买 nike

我正在使用 ajax 表单尝试使用 Create 方法回发 CustomerController。这是代码

<% using (Ajax.BeginForm("Create", "Customer", new AjaxOptions { LoadingElementId = "saving"}, new { @class = "block_content form" }))
{%>...

当我的 html 表单呈现表单时看起来像这样

<form onsubmit="Sys.Mvc.AsyncForm.handleSubmit(this, new Sys.UI.DomEvent(event), { insertionMode: Sys.Mvc.InsertionMode.replace, loadingElementId: 'saving', onComplete: Function.createDelegate(this, $j('#accoutcreate').dialog('close')) });" onclick="Sys.Mvc.AsyncForm.handleClick(this, new Sys.UI.DomEvent(event));" method="post" class="block_content form" action="/Job/Create?Length=3"> ...

如您所见,表单实际上被发布到/Job/Create 而不是/Customer/Create

我不确定为什么会这样。有什么想法吗?

最佳答案

我猜,框架采取了不合适的方法。也许是这样的:

public static MvcForm BeginForm(this AjaxHelper ajaxHelper,
string actionName, object routeValues, AjaxOptions ajaxOptions,
object htmlAttributes);

并且您提供了:

"Create" - actionName,   "Customer" - routeValues,   new AjaxOptions(..) - ajaxOptions,   new { @class = "block_content form" }
- htmlAttributes.

请注意,routeValues 具有对象类型和“Customer”- 字符串,对于 C# 编译器一切正常,但不适合您。

试着写:

(Ajax.BeginForm("Create", "Customer", null,
new AjaxOptions { LoadingElementId = "saving"}
new { @class = "block_content form" }))

关于c# - MVC2 中的 Ajax.BeginForm 错误?? Ajax 用于发布到错误的 Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3764442/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com