управлять полями даты, когда int в БД - PullRequest
0 голосов
/ 10 мая 2010

Привет, в моей БД есть поле "date_start" типа integer.

Это часть формы для этого поля.

<div class="editor-label">
                <%: Html.LabelFor(model => model.date_start) %>
            </div>
            <div class="editor-field">
                <%: Html.TextBoxFor(model => model.date_start, new { @class = "calendar" })%>
                <%: Html.ValidationMessageFor(model => model.date_start) %>
            </div>

В форме я хочу, чтобы формат поля был типом даты. и запомните его в типе int после вызова функции my для преобразования. Как мне это сделать?

спасибо

Ответы [ 2 ]

0 голосов
/ 10 мая 2010

Хорошо. Я предполагаю, что у вас есть класс, сгенерированный Linq, который мы будем называть LGC, и в этом классе есть свойство типа int с именем date_start.

Для начала заверните LGC в другой класс:

public class LGCPageForm
{
   public LGC BaseModel { get; set; }
   public DateTime date_start_as_date { get; set; }
}

Установите класс LGCPageForm для класса вашей страницы. Это потребует некоторого рефакторинга, но я думаю, что это ваш лучший вариант. Теперь в вашей форме у вас будет что-то вроде:

<div class="editor-label">
    <%: Html.LabelFor(model => model.date_start_as_date) %>
    <%: Html.TextBoxFor(model => model.date_start_as_date, new { @class = "calendar" })%>
    <%: Html.ValidationMessageFor(model => model.date_start_as_date) %>
</div>

Затем, захват вашей обратной передачи. Вы определенно захотите реализовать валидацию с помощью DataAnnotations, но это должно помочь вам начать работу в правильном направлении:

[HttpPost]
public ActionResult SubmitWeirdDate(LGCPageForm form)
{
    //I'm not sure if this is the conversion you want?
    form.LGC.date_start = form.LGC.date_start_as_date.Ticks;
}
0 голосов
/ 10 мая 2010

Для этого есть временная метка UNIX, которая в основном является целым числом (и может храниться как таковая). Я понятия не имею, как реализовать это в ASP.NET, хотя. Проверьте, существует ли класс с именем TimeStamp, который может принимать целое число при построении (или позже), затем найдите элемент формы, который принимает TimeStamp. Тем не менее, у меня нет никакого опыта в ASP.NET.

...