Скажите, что я хочу кодировать тег <input>
в пользовательском элементе управления для моего проекта против XSS с помощью антиХСС.не может конвертировать из 'System.Web.UI.HtmlControls.HtmlInputText' в 'string' с помощью HtmlEncode AntiXSS
searchbox.ascx
<input id="searchBox" type="text" class="QueryBox" runat="server" />
searchbox.ascx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Microsoft.Security.Application;
namespace Project2015.Website.layout.search
{
public partial class searchbox : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
searchBox = Encoder.HtmlEncode(searchBox);
}
}
}
Я получаю эту ошибку, когда я пытаюсь скомпилировать мой код
Error 108 Argument 1: cannot convert from 'System.Web.UI.HtmlControls.HtmlInputText' to 'string'
Error 107 The best overloaded method match for 'Microsoft.Security.Application.Encoder.HtmlEncode(string)' has some invalid arguments
не может увидеть, что я делаю неправильно здесь.
Я получаю следующую ошибку: System.Web.UI.HtmlControls.HtmlInputText 'не содержит определения для «Текст» и никакого метода расширения «Текст», принимающего первый аргумент типа «System.Web.UI. HtmlControls.HtmlInputText 'можно найти (вам не хватает директивы using или ссылки на сборку? – Phosy
Попробуйте .Value вместо .Text –
с .Value Я получаю исключение NullReferenceException [NullReferenceException: ссылка на объект не установлена в экземпляр объекта .] Project2015.Website.layout.searchbox.Page_Load (отправитель объекта, EventArgs e) в c: \ inetpub \ wwwroot \ Project2015 \ Website \ layout \ search \ searchbox.ascx.cs: 15 System.Web.UI.Control .OnLoad (EventArgs e) +108 System.Web.UI.Control.LoadRecursive() +67 System.Web.UI.Control.LoadRecursive() +164 System.Web.UI.Control.LoadRecursive() +164 System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +4497 – Phosy