gpt4 book ai didi

c# - 在 MVC Razor View 中使用 javascript/AJAX?

转载 作者:行者123 更新时间:2023-11-29 15:42:40 24 4
gpt4 key购买 nike

我应该将表单提交从 MVC Razor 提交转换为 Ajax 提交,但我什至在表单 View (Add.cshtml) 中使用简单的 javascript 函数时遇到问题。

对于初学者,我尝试通过以下方式链接我想使用的 JS 文件:

@section JavaScript
{
<script type="text/javascript" src="@Url.Content("/Scripts/ajax_submit.js")"></script>
}

javascript 文件如下所示:

function dosubmit() {
$("#add_address").ajaxForm({ url: '~/Home/Add', type: 'post' })
alert("IT WORKS");
return false;// if it's a link to prevent post
}

我的表单是按以下方式构建的:

@model MvcApplicationTest.Models.PersonModel
@section JavaScript
{
<script type="text/javascript" src="@Url.Content("/Scripts/ajax_submit.js")"></script>
}

@{
ViewBag.Title = "Hinzufügen";
}



<h2>Hinzufügen</h2>


<form id="add_address">

<div class="fieldrow">
@Html.LabelFor(x => x.Nachname)
@Html.TextBoxFor(x => x.Nachname)
@Html.ValidationMessageFor(x => x.Nachname)
</div>
<div class="fieldrow">
@Html.LabelFor(x => x.Vorname)
@Html.TextBoxFor(x => x.Vorname)
@Html.ValidationMessageFor(x => x.Vorname)
</div>
<div class="fieldrow">
@Html.LabelFor(x => x.Strasse)
@Html.TextBoxFor(x => x.Strasse)
@Html.ValidationMessageFor(x => x.Strasse)
</div>
<div class="fieldrow">
@Html.LabelFor(x => x.Hausnummer)
@Html.TextBoxFor(x => x.Hausnummer)
@Html.ValidationMessageFor(x => x.Hausnummer)
</div>
<div class="fieldrow">
@Html.LabelFor(x => x.Plz)
@Html.TextBoxFor(x => x.Plz)
@Html.ValidationMessageFor(x => x.Plz)
</div>
<div class="fieldrow">
@Html.LabelFor(x => x.Ort)
@Html.TextBoxFor(x => x.Ort)
@Html.ValidationMessageFor(x => x.Ort)
</div>
<!--Martin-->
<div class="fieldrow">
@Html.LabelFor(x => x.Email)
@Html.TextBoxFor(x => x.Email)
@Html.ValidationMessageFor(x => x.Email)
</div>

<input type="button" onclick="dosubmit()" value="Speichern" />
</form>

但是,当我点击按钮时没有任何反应(它应该弹出一个包含所需文本的窗口)。

我已经尝试将 JS 文件包含到 _Layout.cshtml 中,但它仍然不起作用。

感谢您的帮助:)

最佳答案

当文档准备好时,您应该只需要在表单本身上调用 .ajaxForm.ajaxForm 本身只是准备 ajax 提交的表单,所以当提交按钮被按下时,已经太晚了。

我会从 submit 按钮中删除提交处理程序(我还会在此处使用 submit 类型的 input):

<input type="submit" value="Speichern"  />

并添加以下内容:

$(function () {
$("#add_address").ajaxForm({
url: '~/Home/Add',
beforeSubmit: function () {
alert('about to submit');
},
type: 'post'
});
});

或者,您可以使用 .ajaxSubmit 而不是 .ajaxForm:

function dosubmit() {
$("#add_address").ajaxSubmit({ url: '~/Home/Add', type: 'post' });
alert("IT WORKS");
return false;// if it's a link to prevent post
}

关于c# - 在 MVC Razor View 中使用 javascript/AJAX?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16793549/

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