2009-03-10 11 views
7

Ana sayfada ana ASP.NET formunun Action özniteliğini dinamik olarak değiştirmeye çalışıyoruz.Masternet'te aspnetForm'un Action özniteliği dinamik olarak nasıl değiştirilir

Sayfada bir radyo düğmesi bulunur; kullanıcı, seçeneklerden birini seçer ve gönderim sırasında tıklatır, geri alma işleminde, formun eylem özniteliği seçimine göre seçim yapılmalı ve form otomatik olarak yeniden gönderilmelidir.

Aynı şekilde JavaScript kullanmaya çalışıyorduk.

document.forms[0].action = "option1.aspx"; 
document.forms[0].submit(); 

Ancak bu çalışmıyor gibi görünmüyor, eylem özniteliği üzerinde hiçbir etkisi yoktur.

biz bir ana sayfasını kullanmak istemiyorsanız

, bu, biz ana sayfasını kaldırmak olamaz

this.Form.Action = "option1.aspx"; 
ClientScript.RegisterStartupScript(this.GetType(),"test1", 
    "document.form[0].submit();",true); 

Ne yazık ki kullanılarak kolayca elde edilebilir .. Bu nasıl sağlanabileceği üzerinde herhangi işaretçiler ..?

cevap

5

Bu, onların yapmadıklarını dilediğim bir şeydir. Form etiketi işlem özniteliğini kodlanmış olarak alır. Yapım zamanında yapısını kontrol etmek için bir Kontrol Adaptörü kullanmanız gerekir. Oluşturduğum yeniden yazılan URL'nin geri gönderme URL'sine ihtiyaç duyduğumda özellikle URL Yeniden Yazım için kullanıyorum. Scott Gu bunun için kod yapılmış ve buradan bulabilirsiniz:

http://www.scottgu.com/blogposts/urlrewrite/UrlRewrite_HttpModule1.zip

Ve yazı için adres:

http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx

+0

Nice'in. Tam olarak ihtiyacım olan şey. +1 – Neil

+0

+1 Yardımcı oldu. Buna dayanarak, sunucu tabanlı formu kapattım ve bazı klasik HTML yaptım. – JDB

0

formu çıkan değerler geçirmek gerekiyor mu sayfa? Değilse, neden Response.Redirect'i doğru sayfaya kullanmıyorsunuz? Neden bile hiç bir yazı geri tetikleyen değerler geçirmek gerekiyorsa

protected void btnSubmit_Click(object sender, EventArgs ags) { 
     switch (lstOptions.SelectedValue) { 
      case "option1": 
       Response.Redirect("~/option1.apsx"); 
       break; 
      //etc 
     } 
} 

: Örneğin, bir RadioButtonList lstOptions denilen kullanıyorsunuz varsayarsak? Sadece javascript kullanarak istediğiniz şeyi gerçekleştirebileceğiniz gibi geliyor. Formunuzu varsayarsak Örneğin adlandırılır form1 ve radyo düğmeleri seçenekleri bir isim var:

<input type="submit" value="Submit" onclick="javascript:submitForm()" /> 

<script type="text/javascript"> 
    function submitForm() { 
     for (var i=0; i < document.form1.options.length; i++) { 
     if (document.form1.options[i].checked) { 
      document.forms[0].action = "option" + i + ".aspx"; 
      document.forms[0].submit(); 
     } 
     } 
    } 
</script> 
+0

yes Bu sayfadaki değerleri almam gerekiyor .. bu yüzden sadece yönlendirme yapamıyorum .. Seçenek 2'yi kullanmayı denedim ama bu şekilde çalışmıyor .. artı eylem olayının sayfasının adı aslında sadece çalışma zamanı .. bu yüzden o düz değil .. yardım için teşekkürler .. :) –

İlgili konular