.NET MVC Razorview表单没有显示使用Ajax

问题描述 投票:0回答:2

主要观点:

使用图标对ApplicationController中的AddAppForm操作进行ajax调用。看起来我的ajax电话是成功的..但仍然没有看到形式......想法?看似简单......但......

...
...
<div id="btn_add_app" class="glyphicon glyphicon-plus btn_add_app" aria-hidden="true" style="color:forestgreen; cursor:pointer"></div>
...
...
$('.btn_add_app').click(function () {
        $.ajax({
            url: '/Application/AddAppForm',
            contentType: 'application/html; charset=utf-8',
            type: 'GET',
            dataType: 'html',
            success: function (result) {
                alert(result);
            }
        });
    });

ApplicationController:返回表单...

[HttpGet]
// empty form
public ActionResult AddAppForm()
{
    Application app = new Application();
    app.name = "new name";
    return View(app);
}

视图:

@model Project.Models.Application    

@{ 
    ViewBag.Title = "Add Application";
}

<h2>Add Application</h2>

@using (Html.BeginForm("saveApps", "Application"))
{
    <div>
        <div class="form-group">
            @Html.LabelFor(a => a.name)
            @Html.TextBoxFor(a => a.name)
        </div>

        <div class="form-group">
            @Html.LabelFor(a => a.description)
            @Html.TextBoxFor(a => a.description)
        </div>

        <div class="form-group">
            @Html.LabelFor(a => a.HIM)
            @Html.TextBoxFor(a => a.HIM)
        </div>
        <button type="submit" class="btn btn-primary">Save</button>
    </div>
}
c# jquery .net ajax asp.net-mvc
2个回答
1
投票

Your Ajax call is working

但是您需要在屏幕上的某个元素中呈现收到的数据:

<div id="renderDiv"></div>


[...]
success: function(data){
    $("#renderDiv").html(data);
}

你的整个视图都在data变量中,因此你需要渲染

JQuery .html() Documentation上查看更多信息


0
投票

试着改变这个:

$('.btn_add_app').click(function () {

$('#btn_add_app').click(function () {

.标志意味着它叫class#意味着它叫id这是两者之间的区别。

和你的网址:

从:

url: '/Application/AddAppForm',

url: "@Url.Action("AddAppForm", "Application")",

您的View与您的ajax调用没有任何关系,因为它调用了一个名为saveApps @using的动作名称(Html.BeginForm(“saveApps”,“Application”))

并且您的Ajax网址名称为AddAppForm

你必须创建一个动作名称

public ActionResult saveApps()
{

    return View();
}

让你的@using (Html.BeginForm("saveApps", "Application"))工作。

© www.soinside.com 2019 - 2024. All rights reserved.