2012-03-10 29 views
8

tôi đã tạo ứng dụng mvc khi đăng ký hoàn tất, Tôi được chuyển hướng đến trang cảm ơn.Làm thế nào để sử dụng hộp tin nhắn trong bộ điều khiển MVC?

nhưng thay vì đó tôi muốn hiển thị thông báo bật lên thì làm cách nào tôi có thể thực hiện việc này. mã của tôi:

[HttpPost] 
     public ActionResult Enquiry(Enquiry enquiry) 
     { 
      if (ModelState.IsValid) 
      { 
       dbEntities.Enquiries.AddObject(enquiry); 
       dbEntities.SaveChanges(); 
       enquiry.SendEnquiryEmail(enquiry); 

       return RedirectToAction("Thankyou"); 
      } 
      return View(enquiry); 
     } 

     //redirect to thankyou page 
     public ActionResult Thankyou() 
     { 
      return View(); 
     } 

Trả lời

4

@Reynolds

Câu trả lời của bạn là hoàn hảo.

Trong Razor, dòng sau đây có thể được thay thế

alert("@TempData[alertMessage]"); 

bởi sau

alert('@TempData["alertMessage"]'); 

PS. Lưu ý báo giá

+1

Câu trả lời rất đơn giản. Nó không làm việc cho tôi vì vậy tôi biết đó là do báo giá. Một khi tôi sửa các dấu ngoặc kép, nó đã hoạt động. –

+1

Chúng tôi là nhà phát triển và quan trọng nhất, logic đã làm việc để câu trả lời dường như thật sự với tôi. Tôi chỉ sửa chữa nó để đảm bảo rằng ai đó đang học MVC sẽ không gặp khó khăn. Tôi không hiểu những gì bạn muốn chứng minh.Nếu bạn muốn tôi nói rằng bạn là thiên tài, thì cũng vậy. Cảm ơn thiên tài vì đã chỉ ra sai lầm. –

1

Trên web, bạn sẽ cần sử dụng Javascript để hiển thị hộp thư. Cú pháp (Để đi vào chế độ xem của bạn ở dạng đơn giản nhất)

Alert("Hello There!"); 

Bạn không thể gọi trực tiếp từ bộ điều khiển của mình. Chỉ cần đặt mã ở trên vào chế độ xem ThankYou của bạn.

Điều này rất đơn giản nhưng nên cung cấp cho bạn khái niệm.

10

Để đảm bảo 'cảnh báo' của bạn theo quan điểm của bạn chỉ hiển thị khi bạn có ý định (chuyển hướng từ phương pháp thankyou của bạn) và không khi ai đó vô tình điều hướng tới 'thankyou' xem bạn

//redirect to thankyou page 
public ActionResult Thankyou() 
{ 
    TempData["alertMessage"] = "Whatever you want to alert the user with"; 
    return View(); 
} 

Sau đó, trong bạn " ThankYou "xem, điều này:

if(null != TempData["alertMessage"]) 
    { 
     <script type="text/javascript"> 
     alert("@TempData[alertMessage]"); 
     </script> 
    } 

Điều này sẽ viết kịch bản như bình thường đối với bất kỳ JavaScript nào. Hi vọng điêu nay co ich!

3

Có vẻ như bạn có thể muốn hiển thị hộp thông báo "cảm ơn" trên chế độ xem nơi người dùng nhập dữ liệu đăng ký?

Nếu trường hợp này xảy ra, bạn cần phải AJAX POST gửi một hành động, sau đó xử lý thông báo thành công/thất bại trả về từ hành động trong javascript phía máy khách của bạn.

Một điều cần lưu ý nếu bạn làm điều này là bạn không muốn người dùng của bạn nhấp vào nút "gửi" nhiều lần để bạn có thể ẩn hoặc tắt nó sau lần nhấp đầu tiên và hiển thị/bật tính năng này một lỗi xác nhận ...

5

sử dụng bộ điều khiển mã này

public ActionResult Edit(CoverLetterModel model) 
{ 
    TempData["msg"] = "<script>alert('Change succesfully');</script>"; 
} 

theo quan điểm sử dụng mã này

@Html.Raw(TempData["msg"]) 
+0

cách đơn giản để thêm tập lệnh trên trang xem của bạn – vicky

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