Вы могли использовать сценарий для обновления svn - нерекурсивный текущий каталог, затем индивидуально обновить остающиеся подкаталоги recurvively. Со сценарием удара Вы могли циклично выполниться по всем подкаталогам и просто перескочить через нарушающий.
Что-то вроде этого:
#!/bin/bash
BADDIR="bad"
FILELIST="*"
svn update --non-recursive
for file in $FILELIST
do
if [ -d $file ]
then
if [ $file != $BADDIR ]
then
svn update $file
fi
fi
done
Я нашел этот вопрос, когда искал ответ сам. Приведенные выше решения не сработали для меня, потому что мой DateTime имеет значение NULL. Вот как я решил эту проблему с помощью поддержки объектов DateTime, допускающих значение NULL.
<%= Html.TextBox(String.Format("{0:d}", Model.Property)) %>
Я считаю, что лучший способ сделать это - сбросить ModelValue
ModelState.SetModelValue("due", new ValueProviderResult(
due.ToShortDateString(),
due.ToShortDateString(),
null));
Сначала добавьте это расширение для получения пути к свойству :
public static class ExpressionParseHelper
{
public static string GetPropertyPath<TEntity, TProperty>(Expression<Func<TEntity, TProperty>> property)
{
Match match = Regex.Match(property.ToString(), @"^[^\.]+\.([^\(\)]+)$");
return match.Groups[1].Value;
}
}
Затем добавьте это расширение для HtmlHelper:
public static MvcHtmlString DateBoxFor<TEntity>(
this HtmlHelper helper,
TEntity model,
Expression<Func<TEntity, DateTime?>> property,
object htmlAttributes)
{
DateTime? date = property.Compile().Invoke(model);
var value = date.HasValue ? date.Value.ToShortDateString() : string.Empty;
var name = ExpressionParseHelper.GetPropertyPath(property);
return helper.TextBox(name, value, htmlAttributes);
}
Также вы должны добавить этот код jQuery:
$(function() {
$("input.datebox").datepicker();
});
datepicker - это плагин jQuery.
И теперь вы можете использовать его:
<%= Html.DateBoxFor(Model, (x => x.Entity.SomeDate), new { @class = "datebox" }) %>
Я только что наткнулся на очень простое и элегантное решение, доступное в MVC 2:
http://geekswithblogs.net/michelotti/archive/2010/02/05/mvc-2-editor-template-with-datetime.aspx
В основном, если вы используете MVC 2.0, используйте следующее в вашем представлении.
<%=Html.LabelFor(m => m.due) %>
<%=Html.EditorFor(m => m.due)%>
затем создайте частичное представление в /Views/Shared/EditorTemplates под названием DateTime.ascx
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<System.DateTime?>" %>
<%=Html.TextBox("", (Model.HasValue ? Model.Value.ToShortDateString() : string.Empty), new { @class = "datePicker" }) %>
При вызове EditorFor<> оно найдет подходящий шаблон редактора.
Это грязный хак, но, кажется, он работает.
<%= Html.TextBoxFor(model => model.SomeDate,
new Dictionary<string, object> { { "Value", Model.SomeDate.ToShortDateString() } })%>
Вы получаете привязку к модели и можете переопределить свойство HTML "value" текстового поля с форматированной строкой.