2011-01-31 17 views
5

Trong dự án của tôi <% if (Model.Folders != null){}%> đang hoạt động tốt, khi tôi chuyển đổi mã này sang định dạng dao cạo, tôi có ngoại lệ "Không quá tải cho phương thức 'Viết' mất 0 đối số trong MVC3 Razor Format," trên tôiKhông quá tải đối với phương thức 'Viết' lấy 0 đối số trong Định dạng Dao động MVC3,

Html.RenderPartial(ViewData["abc"] as string, Model); 

tôi Sử dụng động Xem

+0

Tôi cũng nhận được lỗi này tại dòng này: '@ {isAlt =! IsAlt;}'. Nó rất lạ, tôi chỉ muốn chuyển đổi biến boolean. Trước đây tôi đã khai báo nó '@ {var isAlt = true;}' và được sử dụng ở đâu đó ở giữa với 'class =" @ (isAlt? "Alt": string.Empty) "' được sử dụng để tạo kiểu cho các hàng thay thế trong một bảng . Phải có lý do ... – CallMeLaNN

+0

Tôi nhận được câu trả lời: http://stackoverflow.com/questions/4466469/razor-no-overload-for-method-write-takes-0-arguments – CallMeLaNN

Trả lời

7

trong Razor kiểm tra if nên như thế này:

@if (Model.Folders != null) 
{ 
    <div>@Model.Folders</div> 
} 

RenderPartial như thế này:

@{Html.RenderPartial(ViewData["abc"] as string, Model);} 

hoặc bạn cũng có thể sử dụng phương pháp Partial tương đương và ngắn hơn một chút:

@Html.Partial(ViewData["abc"] as string, Model) 
+0

khi tôi sử dụng "@ Html.Partial (ViewData ["abc"] dưới dạng chuỗi, Model) ", tôi nhận được lỗi sau" 'System.Web.Mvc.HtmlHelper ' không có phương pháp áp dụng có tên 'Một phần' nhưng dường như có phương pháp mở rộng bằng Hãy xem xét việc đúc các đối số động hoặc gọi phương thức mở rộng mà không có cú pháp phương pháp mở rộng. \t " –

+0

@amir, chế độ xem của bạn không được nhập mạnh, vì vậy bạn không thể sử dụng biến' Mô hình'. Đảm bảo rằng chế độ xem của bạn được nhập mạnh vào một số loại mô hình: '@model AppName.Models.SomeModel' ở đầu chế độ xem của bạn. –

+0

Stongly typed của nó, tôi đã sử dụng "@model AppName.Models.SomeModel" –

2

Tôi đã có cùng một vấn đề, tôi giải quyết nó bằng cách gói của tôi Html.RenderPartial như sau:

 <text> 
     @{ 
      Html.RenderPartial(ViewData["abc"] as string, Model); 
      } 
    </text> 

hoặc

<div> 
@{ 
Html.RenderPartial(ViewData["abc"] as string, Model); 
} 
</div> 
Các vấn đề liên quan