2011-07-02 25 views
17

Tôi làm điều này rất thường xuyên:Html.Action - Nhận so với bài viết

<div id='Product'> 
@Html.Action("Create", "Product") 
</div> 

nó thuận tiện vì tôi có thể ủy bức tranh của một hình thức tạo ra sản phẩm để một hành động điều khiển cho nhúng ở những nơi. Tuy nhiên, tôi có vấn đề trong đó các phương pháp đôi khi (tôi đã không tìm ra theo những điều kiện) gọi [HttpPost] của hành động điều khiển của tôi, mà tất nhiên không thành công.

Có cách nào để buộc @ Html.Action() gọi phiên bản GET không?

Trả lời

18

Cách hoạt động Html.Action là nếu yêu cầu hiện tại của trang là phương thức đăng thì phương thức này sẽ tìm kiếm phương thức có tên HttpPost.

Vì vậy, điều đang xảy ra là bạn đang BẬT trang hiện tại và hành động tương tự như vậy giả định tất cả hành động sẽ thực thi phải là POST.

Không đời nào tôi biết buộc phải chuyển sang phương thức khác như thế.

+5

vâng, tôi đã hiểu rằng con số. đó là một giả định khủng khiếp về phía họ. Những gì tôi đã kết thúc làm là đổi tên các hành động để không có sự mơ hồ – ekkis

+0

Đó có lẽ là giải pháp tốt nhất. Vinh dự khi được giup bạn. – Buildstarted

3

thử thêm AcceptVerbs thuộc tính để hành động của bạn:

[AcceptVerbs(HttpVerbs.Get|HttpVerbs.Post)] 
public ActionResult Create() 
{ 
    //Your code 
} 

này sẽ làm việc cho cả hai GET và POST yêu cầu.

+0

hmm ... có nhưng điều đó sẽ buộc tôi phải mã hóa cả hai hành vi vào cùng một phương pháp ... có nghĩa là tôi sẽ cần một cách để nói trong phương thức cho dù một bài đăng hoặc nhận được thực hiện ... làm thế nào điều này sẽ được thực hiện? – ekkis

-1

Tôi vừa gặp sự cố này, rất khó xác định. Tôi đã sử dụng Html.RenderPartial thay vào đó, như thế này:

<div id='Product'> 
@{Html.RenderPartial("_CreatePartial", new Product());} 
</div> 
0

Tôi cũng gặp vấn đề tương tự và thực sự là một giải pháp. Chỉ cần Kiểm tra xem yêu cầu là có được hoặc POST trong Xem bằng IsPost tài sản và thì đấy ....

@if(!IsPost)  
{  
    HTML.Action("ActionName")  
} 

Trân trọng bất cứ ai nhận được trong vấn đề tương tự ...

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