2011-02-07 41 views
66

tôi có hành động điều khiển sau:không thể chuyển đổi hoàn toàn loại void thành đối tượng. NET MVC PartialViewResult

[ChildActionOnly] 
public virtual PartialViewResult ListActions(int id) 
{ 
    var actions = meetingActionRepository.GetAllMeetingActions(id); 

    return PartialView(actions); 
} 

Và vào liên kết hành động sau đây (sử dụng t4MVC và cú pháp dao cạo)

<p> 
    @Html.RenderAction(MVC.MeetingActions.ListActions(Model.MeetingId)) 
</p> 

Tuy nhiên điều này mang lại cho tôi những lỗi:

cannot implicitly convert type void to object

Theo như tôi có thể nói hành động của bộ điều khiển là ok, vậy điều gì có thể cho tôi lỗi này?

Trả lời

104

Như thế này:

<p> 
    @Html.Action(MVC.MeetingActions.ListActions(Model.MeetingId)) 
</p> 

hoặc nếu bạn nhấn mạnh vào RenderAction như thế này:

<p> 
    @{Html.RenderAction(MVC.MeetingActions.ListActions(Model.MeetingId));} 
</p> 

Cá nhân tôi thích là người đầu tiên, làm cho tổ hợp phím ít hơn.

+1

Cảm ơn bạn. Cú pháp sôi nổi ở đó. Tôi cho rằng đó là cách làm dao cạo <% html thay vì <% = Html? Sự khác nhau giữa Action và Renderaction là gì. Phil Haack cho biết RenderAction hiệu quả hơn? – MrBliz

+2

@ Doozer1979, vâng, chính xác, đó là cách Razor. –

+0

Điều này cũng hoạt động: {Html.RenderAction (MVC.MeetingActions.ListActions (Model.MeetingId));}, do đó, việc sử dụng @ là không cần thiết. – FrenkyB

9

tôi đã cùng một vấn đề. Những gì làm việc cho tôi là để đóng gói các biểu thức trong dấu ngoặc nhọn.

@{Html.RenderPartial("viewName", Model);}

+1

một dự phòng) trước đây; –

+0

Tôi tháo khung. Cảm ơn! – Ewald

Các vấn đề liên quan