2011-04-14 58 views
0

我有基于人体模型的这个视图,这是一个实体模型。根据部分视图中的操作返回主视图中的几个局部视图

@model TestApp.Models.Person 

@{ 
    ViewBag.Title = "Index"; 
} 

<h2>Index</h2> 

@Html.Partial("../PersonContactData/Create"); 

然后我的PersonContactData控制器返回部分视图“创建”,它有一个窗体和一个提交按钮。当我按下提交按钮时,我会从PersonContactData控制器执行一个redirectToAction以索引,并且我想从Index返回到上面描述的页面。

我该怎么做?

而且我希望所有这一切都在没有页面刷新的情况下发生。我可以通过ajax传递所有的值,但是我需要一些'容器'或者某些东西来实际地获取返回到基于Person模型的主视图的部分视图(列表,创建,编辑,..从PersonContactData)。 换句话说,这些动作及其相应的局部视图及其功能可以在基于antother模型(Person)和控制器(PersonController)的页面中工作

这就是例如一个ajax post函数,我用它来获取创建视图的值。这工作,但我仍然希望重定向到我的HttpPost创建操作中的操作索引,并返回视图索引,因为它应该工作。但我的主视图(基于Person模型)不会显示它。

function ACGetList() { 
     var personContactData = { 
      ContactType: $('#ddlContactDataType').val(), 
      Value: $('#txtContactDataValue').val() 
     }; 
     $.ajax({ 
      url: '/PersonContactData/Create', 
      type: 'POST', 
      data: JSON.stringify(personContactData), 
      dataType: 'Json', 
      contentType: 'application/json; charset=utf-8', 
      success: function() { }, 
      error: function() { } 
     }); 
    } 

在此先感谢

回答

0

OK,据我所知。

MVC系统是一个服务器端结构或框架工作。 M =模型,V =查看,C =控制器。

模型是验证,数据库等, 查看有标记,JSON,CSS,XML等... 控制器,是PHP,ASP,还是你能说什么时候显现。

据我了解你的问题,你只是简单地问使用阿贾克斯。

ajax所做的是请求一个页面,并使用js将一些数据或全部数据重新传输到主页面。 退房jQuery .ajax功能或谷歌它。

因此可以说,乌拉圭回合的主页是:

mysite.com回报<h1>Hello World!</h1>

然后AJAX页面使用JS有 <p>I am ajax</p>

然后主页/ JQ你可以告诉在那里你想要“我是ajax”去

+0

在我的项目中我使用ajax来获得部分视图'Cr eate'(基于模型PersonContactData),这是插入到我的主视图(基于模型Person)。但仍然如果我从部分视图点击按钮(onclick函数ACGetList现在显示在主要主题中)我希望我的RedirectToAction函数返回到主页面的另一个局部视图(基于Person模型) – user707596 2011-04-14 13:58:44

+0

ok你的ajax成功可以有另一个Ajax进入它或使用队列功能发生在它后面,如果你在服务器端重定向它,你只是迫使浏览器去不同的位置。下载firebug,在你的Firefox上,它会帮助你更好地理解它,并且正确地调试你的脚本,然后你可以看到每个Ajax请求返回的内容。 – Val 2011-04-14 13:59:04