首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ajax mvc-4:应该接收asp.net调用的内容

ajax mvc-4:应该接收asp.net调用的内容
EN

Stack Overflow用户
提问于 2012-08-23 22:08:02
回答 3查看 1.6K关注 0票数 2

我是ASP.NET MVC(-4)的新手。

我想使用jquery从我的网站进行Ajax调用,并使用返回的html填充页面上的div。因为它只是一个div,我不需要一个完整的html页面的标题和完整的主体和东西。

接收端应该是什么?

它应该是普通视图、部分视图、某种特殊类型的资源或处理程序,还是其他一些魔术?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-23 22:20:52

您可以将其与Post和Get操作符一起使用

脚本

代码语言:javascript
复制
 $.ajax({
      url: '@Url.Action("SomeView")',
      type: 'GET',
      cache: false,
      data: { some_id: id},
      success: function(result) {
          $('#container').html(result);
      }
  });

控制器

代码语言:javascript
复制
public ActionResult SomeView(int some_id)
{
    ....
    return PartialView();
}

视图

代码语言:javascript
复制
<div id="container">
    @Html.Partial("SomeViewPartial")
</div>

或者您可以使用AjaxActionLink

视图

代码语言:javascript
复制
@Ajax.ActionLink("text", "action", "controller",
new AjaxOptions
{
    InsertionMode = InsertionMode.Replace,
    UpdateTargetId = "container",
    OnSuccess = "onSuccess",
})

脚本

代码语言:javascript
复制
function onSuccess(result) {
    alert(result.foo);
}

控制器

代码语言:javascript
复制
public ActionResult SomeView(int some_id)
{
    return Json(new { foo = "bar" }, JsonRequestBehavior.AllowGet);
}

也可以你可以使用Ajax.ActionLink来只更新内容页面。通过使用这个:

~/Views/ViewStart.cshtml:

代码语言:javascript
复制
@{
    Layout = Request.IsAjaxRequest() ? null : "~/Views/Shared/_Layout.cshtml";
}
票数 3
EN

Stack Overflow用户

发布于 2012-08-23 22:14:06

,因为它只是一个div,我不需要一个完整的html页面的标题和完整的主体和东西

你想要一个PartialView

票数 2
EN

Stack Overflow用户

发布于 2012-08-23 22:11:15

可以返回Layout属性值设置为null的视图

代码语言:javascript
复制
public class UserController : Controller
{
    public ActionResult GetUserInfo()
    {
      return View();
    }
}

GetUserInfo.cshtml

代码语言:javascript
复制
@{
  Layout=null;
}
<h2>This is the UserInfo View :)</h2>

并且您可以使用jQuery ajax方法从任何页面调用它

代码语言:javascript
复制
$("#someDivId").load("@Url.Action("User","GetUserInfo")");

如果您希望相同的Action方法处理Ajax调用和普通GET请求调用(在Ajax上返回部分视图,在普通Http GET请求上返回普通视图),则可以使用Request.IsAjax属性来确定。

代码语言:javascript
复制
 public ActionResult GetUserInfo()
 {
    if (Request.IsAjaxRequest)
    {
       return View("Partial/GetUserInfo.cshtml");
    }
    return View();  //returns the normal view.
 }

假设您在Views/YourControllerName/Partial文件夹中预先设置了局部视图(布局设置为空的视图

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12093552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档