Архив Категории: ASP.NET

SPFolder и Custom Field Types: ошибка сохранения папки в SharePoint 2013

Доброго времени суток.

Несколько лет назад по воле случая я занялся разработкой под систему SharePoint. О ней речь и пойдет сейчас. А точнее о версии Sharepoint 2013.

В одном из проектов возникла необходимость создавать листы типа Library, а в них нужно создавать папки с определенным набором свойств. Немного отступлю от темы: мне кажется переделка поля типа SPFieldLookup под себя, под нужды проекта или компании самая популярная задача :)

Дак вот, именно этот переделанный SPFieldLookup и надо было добавить на форму создания элемента типа Папка. Вот тут как раз кроется особенность работы — после добавления нашего кастомного поля элемент перестал создаваться без каких либо ошибок — просто обновлялась форма и поля Имя затиралось. Дебаг поля ни к чему не привел. Даже был произведен дебаг библиотеки Microsoft.Sharepoint.dll, но и там никаких ошибок не было.  Времени было потрачено много. Выяснилось, чтоб при добавлении ЛЮБОГО кастомного поля (пусть даже оно просто переопределяет класс стандартного поля без переопределения функционала) возникает эта ошибка.

В конечном итоге было найдено очень простое решение ситуации — на странице создания Upload.aspx есть веб-часть типа ListFormWebPart. И вот в этой вебчасти есть небольшая настройка для формирования клиентской обработки.

SPFolderCreateError

В случае такого поведения необходимо установить отрисовку на стороне сервера и проблема будет решена.

Я надеюсь вы найдете это полезным для себя и не потратите уйму времени на поиски решения.

Разделитель для ValidationFormula

Доброго времени суток.

Столкнулся с очередной особенностью SharePoint. На этот раз боль доставил разделитель для ValidationFormula.
Дело было так: была задача через XML создавать поля. Там же должна быть и формула для валидации даты — дата должна быть либо пустой, либо больше чем текущая дата. Все происходило в контексте русской версии SharePoint (вот тут и кроется засада, как позже выяснилось). читать далее »

Выгрузка таблицы ASPxGridView в Excel, PDF и другие форматы

Доброго времени суток.

Не прошло и полгода :) Хотя нет… Прошло…

Используем во многих проектах DevExpress, чаще всего грид (ASPxGridView). Очень полезная штука, прям очень.

Встала как-то задача выгрузки текущей выборки из грида в Excel. После гугла было определено, что у грида есть встроенный функционал для этого и он описан на оф. сайте. Но я все равно о нем напишу ))
Буду рассматривать использование грида в разметке. читать далее »

Как побороть ошибку «Обнаружено потенциально опасное значение Request.Form»

Доброго времени суток.

Работая с ASP.NET MVC столкнулся с ошибкой «Обнаружено потенциально опасное значение Request.Form». В сети много всего написано по поводу изменения настроек Web.Config и всего в этом духе. Предлагают вписать следующее в <system.web>:

<httpRuntime requestValidationMode="2.0" />
<pages validateRequest="false" >

Но это не помогает. А действительно пилюля для меня выглядела так:

[ValidateInput(false)]

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

Вот собственно и все.

ASP.NET MVC: преобразование JSON в объект C#

Доброго времени суток.

Столкнулся в необходимостью получить преобразование JSON в объект C#. Долго рылся в интернете в поисках решения и, наконец, из всего многообразия информации собрал следующий способ. читать далее »

Отправка почты средствами ASP.NET

Доброго времени суток.

Потребовалось в одном проекте рассылать уведомления о регистрации пользователей.
Задачка хоть и простая, но решил все же написать. Может и самому когда нибудь надо будет вспомнить, а тут вот оно :)
Решил следующим путем (код на C#, комментировать не стал — вроде и так все понятно):

public void SendEmail(string message, string sendTo, string sendFrom, string subject)
{
    MailMessage Message = new MailMessage();
    Message.Subject = subject;
    Message.Body = message;
    Message.BodyEncoding = System.Text.Encoding.ASCII;
    Message.From = new System.Net.Mail.MailAddress(sendFrom);
    Message.To.Add(new MailAddress(sendTo));
    System.Net.Mail.SmtpClient Smtp = new SmtpClient("smtp.example.com");
    Smtp.EnableSsl = true; // актуально для почтовых служб с SSL, например Gmail
    Smtp.Credentials = new System.Net.NetworkCredential(sendFrom, "123123123");
    Smtp.Send(Message);
}

Данная отправка использует соединение с сервером.
Если кто предложит вариант, при котором не надо использовать пароль и ящик на конкретном сервере, ну или хотя бы просто без пароля — буду признателен. Сам пока в поиске такого решения. Найду — опишу.

Яндекс.Метрика