[英]Html.Action from a partial view
我從asp.net Mvc應用程序的局部視圖中調用Html.Action。 將對void方法進行調用,該方法應該接收加入部分視圖的模型對象,但該方法接收null。
進入部分視圖的模型:
@model IEnumerable<RA.Web.Models.BookedResource>
Html.Action:
@Html.Action("SendEmailConfirmation", "BookedResource", Model.ToList())
在bookedResources中接收null的void方法:
public void SendEmailConfirmation(List<BookedResource> bookedResources)
{
var email = new Email();
email.SendEMail(CurrentUser, "Subject", CreateBodyForConfirmation(bookedResources));
}
有人知道為什么參數為空嗎?
Html.Action
具有一個重載,它期望將路由值作為一個對象,但不是List<Object>
。 您可以創建ViewModel
而不是使用List<BookedResource>
。 見下文:
public class MyViewModel
{
public List<BookedResource> BookedResources { get; set; }
}
然后在您的視圖中使用MyViewModel:
@model MyViewModel
@Html.Action("SendEmailConfirmation", "BookedResource", Model)
最后使用MyViewModel作為參數類型:
public void SendEmailConfirmation(MyViewModel bookedResources)
{
//
}
Html.Action()采用路由值,而不是模型。
您最好使用jquery ajax回調到控制器操作。 我從來沒有真正看過Html.Action無論如何都使用這種方式。 它旨在返回html。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.