gpt4 book ai didi

asp.net-mvc-3 - 为 Ajax.BeginForm 添加 Spark 绑定(bind)

转载 作者:行者123 更新时间:2023-12-04 06:20:43 25 4
gpt4 key购买 nike

在我们的 MVC3 项目中,我们使用的是 Spark View 引擎。我们已经设置了一个 Bindings.xml 文件,该文件具有多个绑定(bind),其中一个用于 Html.BeginForm ,如下所示:

<element name="Form">
<start># using (Html.BeginForm("@action", "@controller", new RouteValueDictionary{{"@route-*"}}, FormMethod.@method, new Dictionary[[string,object]]{{"@*"}})) {</start>
<end># }</end>
</element>

我们在 View 中使用它如下:
<Form controller="Account" action="Create" method="Post">
....
</Form>

我们现在有几个我们想使用 ajax 表单的情况,因此,理想情况下,我们想添加一个新的绑定(bind),以便我们可以使用

问题是 Ajax.BeginForm 接受 AjaxOptions 对象。此对象用于配置 UpdateTargetId、成功/失败的方法和回调等内容。

在 Razor 中,我通常会这样称呼:
@using(Ajax.BeginForm("Create", "Account", new AjaxOptions { UpdateTargetId = "mydiv" }) )

根据用例,我们将希望在 AjaxOptions 对象上配置不同的字段并忽略其他字段。

有没有什么方法可以为 ajax 表单添加一个 spark 绑定(bind)来实现这个功能?例如:这样我们就可以声明 ajax 形式,例如:
<AjaxForm controller="Account" action="Create" ajax-UpdateTargetId="mydiv"></AjaxForm>

或者在另一个例子中
<AjaxForm controller="Account" action="Create" ajax-OnComplete="handleSuccess"></AjaxForm>

最佳答案

这是绑定(bind):

<element name="AjaxForm">
<start># using (Ajax.BeginForm(new AjaxOptions{"@ajax-*"})) {</start>
<end># }</end>
</element>

并在您的代码中使用它:
<AjaxForm ajax-UpdateTargetId="mydiv">
Some form elements go here...
</AjaxForm>

根据需要为 Controller/Action 参数添加您自己的重载。

唯一需要注意的是,您可以使用 @* 通配符初始值设定项设置的选项必须是字符串类型。

关于asp.net-mvc-3 - 为 Ajax.BeginForm 添加 Spark 绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6610220/

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