标签: ajax.beginform

如何在Asp.net MVC 4中使用Simple Ajax Beginform?

我是Asp.net MVC的新手,我研究过Ajax.BeginForm但是当我应用代码时它没有用.你能Ajax.Beginform与View,Controller,Model 分享一个非常简单的例子吗?谢谢.

ajax asp.net-mvc ajax.beginform form-helpers

56
推荐指数
3
解决办法
16万
查看次数

在MVC中使用Ajax.BeginForm上传文件

我试图使用这里提到的一个例子如何用multipart/form-data做一个ASP.NET MVC Ajax表单帖子?

但我一直收到"失败"错误消息框

Index.cshtml

<script src="~/Scripts/jquery-1.8.2.min.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
<h2>Files Upload</h2>
<script type="text/javascript">
$(function() {
    $("#form0").submit(function(event) {
        var dataString;
        event.preventDefault();
        var action = $("#form0").attr("action");
        if ($("#form0").attr("enctype") == "multipart/form-data") {
            //this only works in some browsers.
            //purpose? to submit files over ajax. because screw iframes.
            //also, we need to call .get(0) on the jQuery element to turn it into a regular DOM element so that FormData can use it.
            dataString = new FormData($("#form0").get(0));
            contentType = false;
            processData = false;
        } …
Run Code Online (Sandbox Code Playgroud)

ajax asp.net-mvc jquery ajax.beginform asp.net-mvc-4

36
推荐指数
2
解决办法
9万
查看次数

如何从Ajax表单中提交asp.net mvc中的下拉列表

你如何从ajax表单中提交下拉列表"onchange"事件?

根据以下问题:如何在 html.BeginFrom中提交asp.net mvc中的下拉列表,您可以设置onchange ="this.form.submit"并更改下拉帖子.

但是,使用以下代码(在Ajax.BeginFrom中):

<% using (Ajax.BeginForm("UpdateForm", new AjaxOptions() { UpdateTargetId = "updateText" })) { %>
    <h2>Top Authors</h2>

    Sort by:&nbsp;<%=Html.DropDownList("sortByList", new SelectList(ViewData["SortOptions"], new { onchange = "this.form.submit()" })%>

    <%= Html.TextBox("updateText")%>
<% } %>
Run Code Online (Sandbox Code Playgroud)

回发到控制器操作,但整个页面被替换为"updateText"文本的内容,而不是"updateText"文本框中的内容.

因此,不是仅替换Ajax.BeginForm中的区域,而是替换整个页面.

dropdownlist调用this.form.submit的正确方法是什么,只有Ajax.BeginForm中的区域?

asp.net-mvc ajax.beginform drop-down-menu

22
推荐指数
3
解决办法
4万
查看次数

asp.net mvc Ajax.BeginForm

我在使用Ajax.BeginForm时遇到了一些困难

在视图中我有类似的东西

  <% using (Ajax.BeginForm("ActionName", null , null, new { id = "FormName" }))
     {%>
      <input type="hidden" value = '<%= Html.Encode( Model.id) %>' name="id"/>
      <textarea id="message" name=message rows="4" style="width: 90%"> 
      </textarea>
  <% }%}
Run Code Online (Sandbox Code Playgroud)

而动作方法就是这样的

    [AcceptVerbs(HttpVerbs.Post)]
    [Authorize]
    public ActionResult ActionName(int id, string message)
    {
     ....
    }
Run Code Online (Sandbox Code Playgroud)

我正在尝试将'id'和'message'传递给action方法.我正在为routeValues传递'null',但我不知道该传递什么.理想情况下,我试图找到一个不需要路由值的重载,但是使用了actionName和htmlattributes(用于表单名称),但我找不到一个.我不想在视图模型中添加"message",我确实需要用于jquery操作的FormName.解决这个问题的最佳方法是什么?

哦,我忘了提,这就是我发布表格的方式

 $.post($("#FormName").attr('action'), $("#FormName").serialize(),
                               function(result) {
                                   $("#correspondingDiv").html(result);
                               }
                            );
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc ajax.beginform

16
推荐指数
1
解决办法
4万
查看次数

ASP.NET AJAX.BeginForm发送多个请求

我与Asp.net MVC3有关,

我有一个用Ajax处理的表单,如下所示:

@using(Ajax.BeginForm("dtjson",新的AjaxOptions {HttpMethod ="Post",UpdateTargetId ="detalle_tarifa",OnSuccess ="exito2",OnBegin ="bloquear"}))

我的问题是,当我提交数据时,它会发送两次请求.

让我们来看看视图.

这是形式:

在此输入图像描述

好的,现在提交后的视图:

在此输入图像描述

这一个是显示firebug调试:

在此输入图像描述

在布局上,我有那些javascript文件..

   <script src="@Url.Content("~/Scripts/jquery-ui.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/jquery.windows-engine.js")" type="text/javascript"></script>
       <script src="@Url.Content("~/Scripts/jquery.jqDock.js")" type="text/javascript"></script>
       <script src="@Url.Content("~/Scripts/jquery.jqDock.min.js")" type="text/javascript"></script>
       <script src="@Url.Content("~/Scripts/jquery.tablePagination.0.4.js")" type="text/javascript"></script>
       <script src="@Url.Content("~/Scripts/jquery.tools.min.js")" type="text/javascript"></script>
       <script src="@Url.Content("~/Scripts/jquery.cookie.js")" type="text/javascript"></script>
       <script src="@Url.Content("~/Scripts/jquery.treeview.js")" type="text/javascript"></script>
       <script src="@Url.Content("~/Scripts/jquery.treeview.edit.js")" type="text/javascript"></script>
        <script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)

在视图(部分视图)上,我有这个:

<script src="@Url.Content("~/Scripts/jquery-1.4.4.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-ui.js")" type="text/javascript"></script>
<script type="text/javascript" src=@Url.Content("~/Content/tinymce/jscripts/tiny_mce/jquery.tinymce.js")></script>
<script type="text/javascript" src=@Url.Content("~/Content/tinymce/jscripts/tiny_mce/tiny_mce.js")></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
<script src="@Href("~/Scripts/jquery.uploadify.js")" type="text/javascript"></script>
<script src="@Href("~/Scripts/jquery.scrollTo.js")" type="text/javascript"></script>
<script src="@Href("~/Scripts/jquery.blockUI.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
<script src="/Scripts/jquery.cookie.js" type="text/javascript"></script>
<script …
Run Code Online (Sandbox Code Playgroud)

ajax.beginform asp.net-mvc-3

15
推荐指数
2
解决办法
2万
查看次数

Asp.Net MVC Ajax.BeginForm没有通过Ajax提交

我的表格如下

<div id="contact-form" class="hidden" title="Online Request Form">
    @Using (Ajax.BeginForm("Contact", "Main",
                          Nothing,
                          New AjaxOptions With {.UpdateTargetId = "status", .HttpMethod = "post"},
                          New With {.id = "contactUs"}))
        @<div>
            @Html.LabelFor(Function(m) m.Name)<br />
            @Html.TextBoxFor(Function(m) m.Name)<br />
            @Html.LabelFor(Function(m) m.Phone)<br />
            @Html.TextBoxFor(Function(m) m.Phone)<br />
            @Html.LabelFor(Function(m) m.Email)<br />
            @Html.TextBoxFor(Function(m) m.Email)<br />
            @Html.LabelFor(Function(m) m.Question)<br />
            @Html.TextAreaFor(Function(m) m.Question)<br />
            @Html.LabelFor(function(m) m.Security)<br />
            @Html.TextBoxFor(Function(m) m.Security)<br />
            <noscript>
                <input type="submit" name="submit" value="Ok" />
            </noscript>
            @Html.ValidationSummary("Oops, please correct the errors.")<span id="status">@TempData("status")</span>
        </div>
    End Using
</div>
Run Code Online (Sandbox Code Playgroud)

我在jQuery-UI模式窗口中打开它

<script>
    $(function () {

        // Open …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc ajax.beginform razor

14
推荐指数
1
解决办法
2万
查看次数

MVC4 Ajax.BeginForm没有替换UpdateTargetId

关于Ajax.BeginForm的问题有很多关于使用返回局部视图正确更新目标元素的问题:
mvc4 ajax更新同一页面
ASP.NET MVC 4 - Ajax.BeginForm和html5
MVC 4(razor) - 控制器是返回部分视图但整个页面正在更新
MVC 4 Ajax没有更新页面中的PartialView
但是,所有这些都可以通过手动写出jQuery ajax或包含丢失的javascript文件来回答.

  @using (Ajax.BeginForm("PostcardDetails", new AjaxOptions()
  {
    InsertionMode = InsertionMode.Replace,
    UpdateTargetId = "details"
  }))
  {
    <div id="PostcardSearchResults">
      @{Html.RenderAction("PostcardSearchResults", Model);}
    </div>
  }
  <div id="details">
  </div>
Run Code Online (Sandbox Code Playgroud)

相关控制器代码:

[AcceptVerbs(HttpVerbs.Post | HttpVerbs.Get)]
public ActionResult PostcardSearchResults(PostcardSearchFilter filter)
{
        PostcardSearchResults model = new PostcardSearchResults(filter);
        return PartialView("_PostcardSearchResults", model);
}
Run Code Online (Sandbox Code Playgroud)

在我的布局中,我引用了这些jQuery文件.此外,我已经验证页面正在输出正确的路径,并且它找到了正确的文件.我试着开关的顺序unobtrusive-ajax.min.jsvalidate.min.js,没有成功.

<script type="text/javascript" src="@Url.Content("~/Scripts/globalize.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery-1.9.1.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery-ui-1.10.0.custom.min.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.validate.min.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")"></script> …
Run Code Online (Sandbox Code Playgroud)

c# ajax ajax.beginform asp.net-mvc-4 razor-2

14
推荐指数
2
解决办法
4万
查看次数

JQuery和Ajax.BeginForm()两次发布相同的数据

好吧,我是一个网络新手,但我必须承认我现在已经完全迷上了.这是我的问题:

我有一个带有MVCContrib网格的页面和一个"添加帐户"链接,它会打开一个包含在JQuery对话框中的Ajax表单.当我第一次完成工作流程时,一切都很好.我可以通过JQuery/Ajax添加一个新项目并刷新网格(所以我认为).但是,当我尝试第二次添加表单时,始终会提交第一个表单中的数据.我一直在看这个问题的时间太长了,必须承认我完全陷入困境.顺便说一句 - 我确定我这样做完全错了所以请随意提出更好的建议.

这是表格:

@using (Ajax.BeginForm("SaveCheckAccount", "UserManagement", null, new AjaxOptions { OnSuccess = "onAccountAdded", OnFailure = "onAccountAddedFailed"}, new { id = "accountDetails" }))
{
    @Html.ValidationSummary(true)
    @Html.HiddenFor(model => model.Id)
    @Html.HiddenFor(model => model.version)
    @Html.HiddenFor(model => model.User_Id)
    @Html.HiddenFor(model => model.IsDefault)        
    <table>
        <tr>
            <td>
                Account Number
            </td>
            <td>
                @Html.TextBoxFor(model => model.AccountNumber)
                @Html.ValidationMessageFor(model => model.AccountNumber, "*")
            </td>
        </tr>
        <tr>
            <td>
                Routing Number
            </td>
            <td>
                @Html.TextBoxFor(model => model.RoutingNumber)
                @Html.ValidationMessageFor(model => model.RoutingNumber, "*")
            </td>
        </tr>
        <tr>
            <td>
                Account Type
            </td>
            <td>
                @Html.DropDownListFor(model => model.AccountType_Id, new SelectList(@accountTypes, …
Run Code Online (Sandbox Code Playgroud)

jquery ajax.beginform

12
推荐指数
1
解决办法
6974
查看次数

如何只在MVC3中的Ajax.BeginForm的OnFailure中显示错误消息?

我在我的MVC3应用程序中有这个简单的ajax表单,它发送电子邮件消息:

@using (Ajax.BeginForm("SendMessage", new AjaxOptions { 
    LoadingElementId = "wait", 
    OnSuccess = "loadMessages", 
    OnFailure = "showError" }))
{
    <input type="text" name="message" placeholder="Message" />
    <input type="submit" name="submit" value="Send" />
}
Run Code Online (Sandbox Code Playgroud)

如果操作无法发送消息,则会抛出异常.异常处理并显示在showError(error){} javascript函数中:

function showError(error) { 
    $("#error").text(error.responseText);
};
Run Code Online (Sandbox Code Playgroud)

问题是:error.responseText是整个错误页面html转储.

我只需要显示异常错误消息(MVC3中ex.Message中的任何内容).

"public ActionResult SendMessage(string message){}"的实现是无关紧要的.

我需要知道如何只在showError(错误)javascript处理程序中显示异常的消息.

谢谢一堆.

    [HttpPost]
    public ActionResult SendMessage(string message)
    {
        MailMessage mail = new MailMessage();
        SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
        mail.From = new MailAddress("sender@gmail.com");
        mail.Subject = "Some Message";
        mail.Body = message;
        mail.To.Add("recepient@gmail.com");
        SmtpServer.Send(mail);
        return null;
    }
Run Code Online (Sandbox Code Playgroud)

jquery ajax.beginform asp.net-mvc-3

12
推荐指数
2
解决办法
2万
查看次数

带OnBegin的Ajax.BeginForm会阻止调用操作

我在我的MVC 3 + Razor应用程序中使用Ajax.Begin Form

    using (Ajax.BeginForm("ActionName", "ControllerName", new AjaxOptions { OnBegin = "ValidateDateFunction('" + @abc.xyz + "')", HttpMethod = "POST", UpdateTargetId = "savebutton" }))
   {
         <input type="submit" value="Save" />
   }
Run Code Online (Sandbox Code Playgroud)

下面是我的onBegin方法的样子.我传递一个值给这个方法,我能够得到一个适当的警报.

    function ValidateDateFunction(id) {
        alert(id);
        if(some-ConditionUsing-formId)
        {
            return false;
        }

        return true;           
    }
Run Code Online (Sandbox Code Playgroud)

现在使用这个我希望如果我的条件失败,那么不应该调用动作.但在我的情况下,在这两种情况下都会调用我的动作.

请帮忙.

以下是我的实际验证方法

        function ValidateDateFunction(fId) {

        var first = document.getElementById("startDate" + fId);
        var second = document.getElementById("endDate" + fId);

        if (first.value == "" && second.value != "") {
            alert("Please select both dates");
            return false;
        }
        else if …
Run Code Online (Sandbox Code Playgroud)

ajax.beginform razor

10
推荐指数
1
解决办法
3万
查看次数