ASP无法正确处理DNN表单.净c#
本文关键字:表单 DNN 正确处理 ASP | 更新日期: 2023-09-27 18:14:44
我遇到了一个Dot Net Nuke自定义表单的问题。表格有一些奇怪的行为。我认为代码中的皮肤本身很奇怪。我有c#背后的提交按钮代码,在触发时重定向到另一个页面,使用代码"response.redirect()"对函数的结束。但是,它将重定向回自身,而无需在页面中指定任何操作。我意识到,当我查看源代码时,它会自动给出一个返回自身的操作。
皮肤本身的代码如下:
<dnn:Form id="Form" runat="server" ENCTYPE="multipart/form-data" >
按钮代码:
<asp:button id="btnClear2" cssclass="dnnSecondaryAction " runat="server" resourcekey="Submit"
onclick="btnSubmit_Click" />
处理后的表单在浏览器中显示为:
<form name="Form" method="post" action="/onlineorderform.aspx" onsubmit="javascript:return WebForm_OnSubmit();" id="Form" enctype="multipart/form-data">
我不能改变或删除dnn代码没有网站崩溃。似乎dnn代码将覆盖我的c#响应。重定向代码。
你不能在DNN中有一个表单,因为DNN页面本身就是一个表单。检查editUrl()函数以更改页面提交的位置。我现在正试图自己解决这个问题。
进一步扩展:cmdblah。点击事件显然与页面上的按钮控件绑定在一起。
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
cmdblah.Click += cmdblah_Click;
}
private void cmdblah_Click(object sender, EventArgs e)
{
string Testing = EditUrl("AddNewClient");
Response.Redirect(Testing);
//throw new NotImplementedException();
}
在我的情况下,重定向在DNN上做另一个页面而不发送任何东西,但是,我可以看到通过您添加的url中的参数发送信息,或者以其他方式....如果你撞见了,就来报复我。我只是还没到那一步。我想它无论如何都会把post数据发送到新页面。
希望对你有帮助。
由于网站的整个页面都是表单,所以您不能在页面内创建表单。
我过去的解决方案是调用javascript来改变点击按钮/链接时的表单动作。
这个问题是它发送视图状态和所有dnn特定的东西以及预期的字段。
在我的最新项目中,我在要发送和查询的表单字段上使用选择器类来序列化和发布数据。最后效果很好。
编辑:下面是一些代码,将允许您序列化表单的一部分并发送它
$.get('processor URL' ,
$('.ClassAddedToFieldsYouWantToSend').serialize(),
function(data) { alert("do something with the response"; }