标签: webforms

何时使用ASP.NET MVC与ASP.NET Web窗体?

关于ASP.NET MVC的一个常见问题是为什么要在ASP.NET Web Forms上使用它?答案通常包括ViewState和干净的URL等.最后,您会发现使用正确的工具来完成工作,并且它们可以用于不同的目的.但是,我不相信我曾经见过这些目的是什么.那么,您何时会在ASP.NET Web窗体上选择ASP.NET MVC,或者在ASP.NET MVC上选择ASP.NET Web窗体?

asp.net asp.net-mvc webforms

20
推荐指数
2
解决办法
2万
查看次数

如何在webforms中使用Html.Encode

我有一个ASP.NET Web窗体应用程序.有一个带有TextBox的页面,用户在这些页面中输入搜索词,用于查询数据库.

我知道我需要阻止JavaScript注入攻击.我该怎么做呢?

在MVC我会用Html.Encode.它似乎没有在Web窗体中被识别.

谢谢!

asp.net security webforms html-encode

20
推荐指数
3
解决办法
1万
查看次数

有没有一种方法可以在没有eg的情况下绑定单个项目.中继器控制?

假设我有一个类型为Car的对象,我想将其呈现为HTML:

class Car {
  public int Wheels { get; set; }
  public string Model { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我不想使用ASP.NET Repeater或ListView控件进行绑定,因为它看起来太冗长了.我只有一个对象.但我仍然希望能够使用数据绑定语法,因此我不必使用标签或文字.就像是:

<div>
  Wheels: <%# (int)Eval("Wheels") %><br />
  Model: <%# (string)Eval("Model") %>
</div>
Run Code Online (Sandbox Code Playgroud)

有没有人知道那里的控制权呢?

我还没准备好切换到ASP.NET MVC.


不幸的是,DetailsView控件不能满足我的需求,因为它似乎不支持我所追求的模板式语法.它也需要绑定到某种类型的DataSource对象.

我更喜欢Maxim和Torkel建议的解决方案.我会尽力去做.

c# asp.net webforms

19
推荐指数
2
解决办法
7388
查看次数

jquery序列化和多选下拉列表

我一直在使用jquery serialize()函数来序列化表单的值并通过ajax提交它

例如,如果表单名称和id是factoryUsers

var data=$("#factoryUsers").serialize();

现在这适用于具有文本字段,文本区域,简单下拉等的表单.但是当我有多个下拉列表时,事情就会出错,例如,如果我有一个类型的下拉列表

<select size="5" id="factoryUsers" name="factoryUsers" multiple="multiple">

序列化不再正常工作.所以,如果我选择3个用户,我会得到一个查询字符串

factoryUsers=5&factoryUsers=23&factoryUsers=11

将select更改为数组类型也无济于事 factoryUsers[]

任何想法或帮助如何正常工作将是伟大的.

javascript forms jquery webforms

19
推荐指数
4
解决办法
3万
查看次数

限制输入字段中的字符数

我想使用jquery来限制可编辑div(或表单输入)中的字符数.

html jquery webforms jquery-validate

19
推荐指数
5
解决办法
8万
查看次数

Webforms和依赖注入

我正在将依赖注入框架引入现有的WebForms应用程序(使用Castle Windsor).

我对DI有很深的经验,并且倾向于非常强烈地支持构造函数注入而不是setter注入.如果您熟悉Webforms,您就会知道ASP.Net框架处理页面和控件对象的构造,从而无法进行真正的构造函数注入.

我目前的解决方案是在Global.asax的Application_Start事件中注册容器,并将容器保存为Global中的公共静态变量.然后,我只需在页面中直接解析我需要的每项服务,或在需要时控制它.所以在每个页面的顶部,我最终得到这样的代码:

private readonly IMyService _exposureManager = Global.IoC.Resolve<IMyService>();
private readonly IMyOtherService _tenCustomersExposureManager = Global.IoC.Resolve<IMyOtherService>();
Run Code Online (Sandbox Code Playgroud)

显然,我不喜欢将所有这些对容器的引用分散在我的应用程序中,或者我的页面/控件依赖关系是非显式的,但我还是找不到更好的方法.

在Webforms中使用DI有更优雅的解决方案吗?

c# asp.net dependency-injection webforms castle-windsor

19
推荐指数
1
解决办法
1万
查看次数

Web窗体模型绑定:如何省略不可见控件的绑定?

我正在使用.NET Framework版本4.5.1的WebForms的新模型绑定功能.我希望实现的是,根据一些条件排除一些双向绑定.

我非常喜欢Scott Guthrie撰写的(希望现在很有名)博客文章系列.我使用Web Forms Model Binding Part 3:更新和验证(ASP.NET 4.5系列)中的第二种方法实现编辑页面

这就是我所拥有的:(简化,在ElementEdit.aspx中):

<asp:FormView runat="server" ID="FormViewElement" RenderOuterTable="false" DefaultMode="Edit" DataKeyNames="ElementId"
    ItemType="Business.Entities.Element"
    SelectMethod="GetElement"
    UpdateMethod="UpdateElement">
    <EditItemTemplate>
        <asp:Panel runat="server" DefaultButton="ButtonSpeichern">
            <fieldset>
                /*some databound controls*/
                <asp:Panel runat="server" Visible="<%# !Item.CurrentElementData.SomeCondition() %>">
                    /*more databound controls*/
                </asp:Panel>
                /*the submit button ("ButtonSpeichern")*/
            </fieldset>
        </asp:Panel>
    </EditItemTemplate>
</asp:FormView>
Run Code Online (Sandbox Code Playgroud)

如您所见,包裹的内部面板上的可见性存在"更多数据绑定控制"的条件.当条件为真时,这些应该仅绑定,并且它们是可见的.否则它们不应该绑定而不能更改值.

更新的工作方式类似于Scott的帖子(简化,在xxPage.cs中),它是Type Element的通用基类:

protected virtual bool UpdateEntity(int id) {
    T existing = UseCase.GetItem(id); //gets the original element    

    TryUpdateModel(existing); //SHOULD NOT update the invisible databound controls, but …
Run Code Online (Sandbox Code Playgroud)

c# asp.net controls webforms model-binding

19
推荐指数
1
解决办法
1196
查看次数

使用JSP Documents(JSPX)有条件地在元素上设置属性

在HTML表单中,可以通过在其上定义"disabled"属性来禁用按钮,具有任何值:

<button name="btn1" disabled="disabled">Hello</button>
Run Code Online (Sandbox Code Playgroud)

如果要启用某个按钮,则该属性不应该存在,因为没有定义的值可以将disabled属性设置为启用按钮.

当我想在使用JSP文档(jspx)时启用/禁用按钮时,这会导致我出现问题.由于JSP文档必须是格式良好的XML文档,我无法看到有条件地包含此属性的任何方式,因为以下内容不合法:

<button name="btn1" <%= (isDisabled) ? "disabled" : "" %/> >Hello</button>
Run Code Online (Sandbox Code Playgroud)

虽然我可以使用JSTL if标签复制标签两次以获得所需的效果,但在我的特定情况下,我在按钮上声明了超过15个属性(AJAX的许多javascript事件处理程序属性),因此重复标记将使JSP非常凌乱.

如何在不牺牲JSP可读性的情况下解决这个问题?是否有任何自定义标记可以通过操作输出DOM将属性添加到父级?

xhtml jsp jspx webforms

18
推荐指数
3
解决办法
3万
查看次数

如何通过显示文本在ASP.NET下拉列表中设置所选项?

我有一个ASP.NET下拉列表,我通过数据绑定填充.我有与我想要选择的列表项目的显示文本相匹配的文本.我显然不能使用SelectedText(仅限getter)而且我不知道索引,所以我不能使用SelectedIndex.我目前正在通过遍历整个列表来选择项目,如下所示:

ASP:

<asp:DropDownList ID="ddItems" runat="server" /> 
Run Code Online (Sandbox Code Playgroud)

码:

ddItems.DataSource = myItemCollection;
ddItems.DataTextField = "Name";
ddItems.DataValueField = "Id";

foreach (ListItem item in ddItems.Items)
{
    if (item.Text == textToSelect)
    {
        item.Selected = true;
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法在不迭代所有项目的情况下执行此操作?

c# asp.net webforms

18
推荐指数
1
解决办法
4万
查看次数

有没有办法在WebForms中呈现部分视图?

我正在接触一个旧的,WebForms project但我早已离开了,现在我已经习惯了MVC.我正试图折射这个项目并提出一个让我疯狂的简单问题......

.aspx文件包含在另一个文件中的最佳方法是什么?

我不想为此直接拥有很多主文件,我所追求的只是一种类似的@Html.RenderPartial("MyFileName")东西

在一些现有文件中包含文件很难吗?

webforms asp.net-3.5

18
推荐指数
1
解决办法
8758
查看次数