2010-09-21 2 views
3

Я новичок в программировании, но пытаюсь учиться. Im работает visual studio 2010 с проектом asp.net webform с использованием C#. Я пытаюсь реализовать кнопки покупки Paypals now на одной из страниц, а код, который сгенерирован, также находится в тегах формы. Независимо от того, какая кнопка это, первая кнопка на странице никогда не работает, и под ней есть сплошная синяя линия. Все остальные кнопки работают нормально. даже если я удалю его, следующая кнопка станет первой на странице, а затем она тоже не работает .... Я узнаю, что, поскольку все страницы являются формами, а генерируемый код также является формой, я не могу иметь форму внутри форма. Это верно? Есть ли способ обойти это ... все, что я действительно знаю, это HTML-код и CSS-лил, я пытаюсь изучить JavaScript, C#, XML, CSS, ASP.NET, а также Visual Studio. Любая помощь будет принята с благодарностью. Если кто-то хочет посмотреть, о чем я говорю, перейдите на сайт www.curbappealfordummies.net/Packages.aspx. Это сайт, на котором я работаю, и веб-мастер ... Спасибо, ребята, за вашу помощь.ASP.NET 4 Форма внутри страницы веб-формы

+0

слишком большой вопрос, чтобы ответить, но ваши «я не могу иметь форму внутри формы» утверждение в целом правильное. там есть хаки, но ни один из них не рекомендуется (тем более, что вы начинаете). – RPM1984

ответ

1

Это широко распространенный вопрос, но один из возможных ответов - создать вторую форму, в которой есть необходимый код PayPal.

Это упрощенный пример; обычно существует логика, необходимая для достижения этой цели. Например, если кнопки должны содержаться в форме по умолчанию ASP.Net, необходимо будет указать код сервера и/или клиента, чтобы подключить их к этой второй форме и убедиться, что она содержит правильные скрытые значения.

В вашем WebForm

<form id="form1" runat="server"> 
<!-- Contents of your server form -->  
</form> 
<%=base.GetMarkupOutsideDefaultForm() %> 

В вашем CodeBehind

public string GetMarkupOutsideDefaultForm() 
     { 
      // 
      // Return the markup needed for a PayPal form, 
      // including javascript needed to automatically submit it. 
      // AppSettings can be any configuration object that contains 
      // the needed URL (or you can hardcode it) 
      StringBuilder sb = new StringBuilder(); 
      sb.Append("<form action=\"" + AppSettings.PayPalUrl + "\" method=\"post\" id=\"frmPayPal\" target=\"_blank\">"); 

      // add hidden PayPal fields 

      sb.Append("</form>"); 

      sb.Append("<script type=\"text/javascript\">document.forms[\"frmPayPal\"].submit();</script>"); 

      return sb.ToString(); 
     } 

Если логика сложна, то второй блок кода действительно должен содержаться в вспомогательном классе.

Надеюсь, что кто-то на правильном пути.

1

Возможно, вам нужно начать с учебника, призванного помочь вам получить достаточное количество оснований под вашим поясом, чтобы вы могли лучше понять то, что вы действительно хотите сделать ... посмотрите видео на http://www.asp.net/general/videos/build-your-first-asp-net-application-with-asp-net-web-forms и там есть много ресурсов. Это не так сложно, если вы мотивированы, чтобы учиться, и это звучит так, как вы.

+0

Я читаю тонны учебных пособий, электронных книг и видео на этом этапе, так как я получил это через три недели, ничего не зная ... спасибо, я тоже проверю эту ссылку .... –

0

Я знаю, что вы имеете в виду. Попробуйте добавить дополнительные

<form action='https://www.paypal.com/cgi-bin/webscr' method='post' target='paypal'></form>

На вершине.

Пример:

<form id="form1" runat="server"> 
    <div> 
    <form action='https://www.paypal.com/cgi-bin/webscr' method='post' target='paypal'> 
    </form> 
    </div> 
    <div> 
    <form action='https://www.paypal.com/cgi-bin/webscr' method='post' target='paypal'> 
     <input type='hidden' name='add' value='1'> 
     <input type='hidden' name='cmd' value='_cart'> 
     <input type='hidden' name='business' value='<%# DataBinder.Eval(Container.DataItem, "business_email") %>'> 
     <input type='hidden' name='no_shipping' value='0'> 
     <input type='button' name='submit' value='Add To Cart' title='Add to Cart Button'> 
    </form> 
    </div> 
</form> 

Простой, но это работает.

Или, если вам не нравится эта идея, попробовать этот пост:

+0

Привет, я попробую, и посмотреть сообщение lol ... –

+0

Пробовал это, работает только на новой загрузке страницы, затем он просто обновляет страницу –

Смежные вопросы