2009-08-24 29 views
5

ASP.NET MVC uygulamasında bir sayfa (wiki sayfası gibi) oluşturan bir eylem Sayfa() var.ASP.NET MVC: Başka bir eylemde işlem çıktısı alın

Şimdi, Page() sayfasının HTML çıktısını alması ve bu sayfanın PDF sürümünü oluşturmak için HTML2PDF bileşenini kullanması gereken başka bir eylem RenderPdf() var.

Bir eylemin HTML çıktısını başka bir eylemde nasıl toplarım. Not: görünümde değil, doğrudan eylem kodunda.

cevap

0

MVC Futures aksamını kullanabilirsiniz.

bir eylemin HTML çıktısını alır, ama bir görünüm içinden RenderAction (denilen bir yöntem) vardır

...

+0

Aslında Bruno, RenderAction() bir görünüm içinde kullanılmak üzere tasarlanmış bir HtmlHelper olduğunu. İşlenen çıktıyı yakalamak için mladen izin vermez. – apiguy

+0

Oh, evet, üzgünüm. Cevabı ben adapte edeceğim. Teşekkürler –

0

yakalamak için javascript kullanmak edemezsiniz pdf çıkışının sadece bir kopyası ise görüntüyü PDF'ye dönüştürmek için geri dönüyor musunuz? Ya da pdf sürümünü, ilk eylemin aynı modelindeki görünüme iletin. Kullanıcının ona ihtiyacı olana kadar gizli kalmasını sağlayın.

+0

zsharp, yapmayı planladığım geçici çözüm bu, ama ben bundan memnun değilim. PDF'nin 100 sayfa uzunluğuna benzeyeceği vakalarım olacak. Bu büyük HTML'yi Javascript ile ileri ve geri iletmeyi sevmiyorum. – mladen

+0

, işlem kodunda pdf oluşturmak ve görünümü oluşturmadan hemen önce sunucuya kaydetmek için başka bir yol olabilir. dosya adında kimliği eşleştirmek için görüntülemek için gönderilen benzersiz kimlik pdf erişim. – zsharp

+0

zsharp, sorun - PDF oluşturmak için HTML2PDF bileşenini kullanıyorum çünkü öncelikle HTML'ye ihtiyacım var – mladen

0

Sen benzer bir soruya bu Awnser kontrol edebiliriz:

Send ASP.NET MVC action result inside email

Açıkçası size HTML2PDF PDF üretimiyle SendEmailKThx() çağrıyı yerini alması gerekiyor. Jan Willem B tarafından önerilen

0

yöntem çalışır ve kumandanın sadece adı kullanmak, GetActionOutput çağrı yaparken ben ASP .NET MVC 1.

bu test etti. örneğin, çağrılan denetleyici adı AccountController ise, sadece Hesap olarak ele alın.

örn. AccountController üzerinde Test Yöntemi'ni aramak isterseniz, sözdizimi ... GetActionOutput ("Hesap", "Test");