Дата формата на привязке (ASP.NET MVC)

Вы могли использовать сценарий для обновления 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
35
задан Corin Blaikie 25 September 2008 в 14:25
поделиться

5 ответов

Я нашел этот вопрос, когда искал ответ сам. Приведенные выше решения не сработали для меня, потому что мой DateTime имеет значение NULL. Вот как я решил эту проблему с помощью поддержки объектов DateTime, допускающих значение NULL.

<%= Html.TextBox(String.Format("{0:d}", Model.Property)) %>
4
ответ дан 27 November 2019 в 06:34
поделиться

Я считаю, что лучший способ сделать это - сбросить ModelValue

ModelState.SetModelValue("due", new ValueProviderResult(
       due.ToShortDateString(), 
       due.ToShortDateString(), 
       null));
1
ответ дан 27 November 2019 в 06:34
поделиться

Сначала добавьте это расширение для получения пути к свойству :

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" }) %>

ASP.NET MVC2 и формат даты и времени

3
ответ дан 27 November 2019 в 06:34
поделиться

Я только что наткнулся на очень простое и элегантное решение, доступное в 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<> оно найдет подходящий шаблон редактора.

55
ответ дан 27 November 2019 в 06:34
поделиться

Это грязный хак, но, кажется, он работает.

<%= Html.TextBoxFor(model => model.SomeDate,
    new Dictionary<string, object> { { "Value", Model.SomeDate.ToShortDateString() } })%>

Вы получаете привязку к модели и можете переопределить свойство HTML "value" текстового поля с форматированной строкой.

9
ответ дан 27 November 2019 в 06:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: