Вопрос: PostBackUrl недоступен в Html-кнопках


В настоящее время мы выполняем межстраничную обратную передачу, используя PostBackUrl из asp:Button:

<asp:Button runat="server" PostBackUrl="processing.aspx" />

который генерирует этот javascript onclick материал:

<input type="submit" name="ctl03"
    onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions('ctl03', ', false, ', 'processing.aspx', false, false))" />

Мы хотели бы переключить его, чтобы использовать простой ol ' <button runat="server"> ( проще в стиле ) Однако PostBackUrl на них не поддерживается.

Поэтому я подумал: что, если просто использовать указанный JavaScript в моем <button> элемент?

<button runat="server" name="ctl03"
    onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions('ctl03', '', false, '', 'processing.aspx', false, true))">
</button>

И waddayaknow, это работает.

Кто-нибудь видел это раньше? Какой вред мне придет или мои дети, если я продолжу это?


5


источник


Ответы:


Интересный вопрос, я просто посмотрел на ClientScript. GetPostBackEventReference  метод, и вот что я получаю:

Кнопка на странице ASP.NET:  

<button id="Button2" runat="server" name="Button2"></button>

При кодировании:  

PostBackOptions postBackOptions = new PostBackOptions(Button2);
postBackOptions.ActionUrl = "processing.aspx";
Button2.Attributes.Add("onclick", 
    ClientScript.GetPostBackEventReference(postBackOptions));

Полученный результат:

<button id="Button2" name="Button2" 
    onclick="WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;Button2&quot;, &quot;&quot;, false, &quot;&quot;, &quot;processing.aspx&quot;, false, true))">
</button>

5



«Наверное, нет», но вы полагаетесь на детали реализации JavaScript ASP.NET, которые могут меняться со временем.

Я буду честен, я действительно не понял, что есть элемент HTML <button>.


0