簡體   English   中英

局部視圖的HTML.Action

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM