2010-01-17 78 views
1

我有一个呈现数据库记录的asp.net mvc页面,它使用RenderPartial调用另一个呈现与该记录相关的项目可编辑列表的视图。ASP.NET MVC使用RenderPartial捕获'Save'POST

我的问题是我想要一个自保存/提交按钮,它不仅保存对该记录所做的更改,而且还对RenderPartial部件进行的更改...我在RenderPartials控制器中创建了一个接受POST的方法,你会打电话吗?有任何想法吗?或者我错误地使用了RenderPartial?我就是这么做的,让我有一个控制器处理数据

的子集

更新: 我不认为我已经足够清晰:

想象一下,你有一个网页,是一个情况充满了来自数据库中许多不同表格的信息......例如,假设您有一个人的记录,然后您拥有了所有要链接到的组织的链接,因此该页面包含:

个人名称,电子邮件等... AND 组织链接1 组织链接2等等从一个链接表

由于我想呈现的页面数据量很大,我想通过使用不同的控制器来呈现每个部分是有意义的......但是当保存数据时,我必须只使用一种控制器方法或可以我打电话给另一个控制器...我只有一个表格和一个“保存”按钮,整个页面

我希望这更清楚吗?

+0

由于使用MVC更多的人意识到这是永远不会回答的,因为这是一个愚蠢的问题。 – 2010-08-06 11:11:50

回答

0

你不需要为每个控制器都有一个特定的控制器,尽管我怀疑你的意思是说“我已经在RenderPartial的动作中创建了一个接受POST的方法......”?

当您接受默认的html帮助程序命令时,它有时可能会混淆将调用哪个操作。对于特定的网页,标签将确定POST值的位置。因此,所调用的操作将取决于您在Html.BeginForm调用中指定的控制器/操作。

例如,下面是我们从ASCX页面中使用的一种形式:

<% using (Html.BeginForm("InvoiceDetail" //Action 
      , "CompanyInvoice" //Controller 
      , FormMethod.Post 
      , new { @id = "InvoiceForm", @autocomplete = "off" })) 
    {%> 

表单可以张贴到任何行动,任何控制器。不是你想要的,但它非常灵活。您现在也可以在单个网页中拥有多个表单,这对于复杂的表单非常有用。