2010-08-16 54 views

回答

1

我明白了!

我有下面的代码在控制器:

[Authorize, HttpPost] 
public ActionResult UpdateDinner(FormCollection formValues) 
{ 
    if (Request.IsAjaxRequest()) 
    { 
    Dinner Dinner = DinnerRepository.GetDinner(Convert.ToInt32(formValues["Date"])); 
    return PartialView("DeclaratieWidget", Dinner); 
    } 
} 

我有这样的代码在我看来:

<script src="<%= AppPathHelper.Url(Request.ApplicationPath, "/Scripts/MicrosoftAjax.debug.js") %>" type="text/javascript"></script> 
<script src="<%= AppPathHelper.Url(Request.ApplicationPath, "/Scripts/MicrosoftMvcAjax.debug.js") %>" type="text/javascript"></script> 

<% using (Ajax.BeginForm("UpdateDinner", new AjaxOptions { UpdateTargetId = "Dinner" })) 
    { %> 
    <select id="Date" name="Date"> 
    <option value="<%= Dinner.Dinner_ID %>"><%= Dinner.Date.ToString("dddd d MMMM") %></option> 
    </select> 
    <input type="submit" value="Delete" /> 

<div id="avondeten"> 
    <% Html.RenderPartial("DeclaratieWidget", Model.Dinners[0]); %> 
</div> 

它完美地指教! :D

+0

祝贺我能够做出回应之前有所作为; veel geluk! – Tahbaza 2010-08-17 17:19:26

1

是的,这里是这样做的一个办法:

您可以从AJAX调用控制器上的操作(jQuery是我用的),并得到结果。要向上传递数据,您需要为$ .ajax()调用提供参数值,并渲染您仅使用任何视图模型适合您的局部视图的部分。

要获取显示的内容,只需将HTML结果传回给$ .ajax()调用,最常见的方法是用HTML结果替换div的内容。

+0

嗨Tahbaza!感谢您的快速回复!这听起来像我需要的东西! 您能否提供一些示例代码来说明这一点?我的视图中必须有什么?我的控制器看起来像这样: [授权,HTTPGET] 公共的ActionResult UpdateAvondeten(的FormCollection formValues) { 如果(Request.IsAjaxRequest()){ Avondeten avondeten = avondetenRepository.GetAvondeten(Convert.ToInt32(formValues [ “原点” ])); return PartialView(“DeclaratieWidget”,avondeten); } else { return RedirectToAction(“Foutmelding”,“Home”); } } – Erwin1441 2010-08-17 07:31:48