Проверка сообщения об ошибке в веб-приложении Windows из базы данных с использованием Visual Studio 2010 - PullRequest
0 голосов
/ 26 февраля 2012

я впервые публикую вопрос, и я в некотором роде новичок в Visual Studio 2010. У меня есть веб-приложение (для школьного задания), которое позволяет вам создавать «новостную статью», которая будет отображаться натитульная страница.Я выполнил все в своем задании, за исключением того, что не могу понять, как проверять форму в моей форме, когда текстовое поле в форме остается пустым.Я искал повсюду и следовал нескольким учебникам, но все еще не могу заставить его работать с моим конкретным случаем.Я зашел в свою базу данных в визуальном конструкторе, щелкнул правой кнопкой мыши по ней, щелкнул «просмотреть код» и поместил это там:

using System.ComponentModel.DataAnnotations;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace NewsDisplay
{
  partial class NewsItemDataContext
  {
  }

  [MetadataType(typeof(NewsItem_Validation))]
  public partial class NewsItem
  {

  }

  public class NewsItem_Validation
  {
     [Required(ErrorMessage = "Title is Required")]
     public string Title { get; set; }
  }
}

И тогда моя функция создания находится в моем Homecontroller и выглядит так:*

    [HttpPost]
    public ActionResult Create(FormCollection formData)
    {
        NewsItem n = new NewsItem();
        if (ModelState.IsValid)
        {
            TryUpdateModel(n);
            NewsItemRepository repository = new NewsItemRepository();
            repository.AddNewsItem(n);
            return RedirectToAction("index");
        }
        else
        {
            return View(formData);
        }

    }

Сначала я получал исключение в UpdateModel, но потом обнаружил, что использование TryUpdateModel работает.Теперь я получаю исключение в своем коде .aspx, который контролирует домашнюю страницу, потому что заголовок новости не может быть пустым.Вот моя страница index.aspx с комментарием, где я получаю исключение:

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<NewsDisplay.NewsItem>>" %>

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Home Page
</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>Newest Stories</h2>
<% foreach (var item in Model) { %>
    <table class="center">
        <thead>
            <tr>
                <td>
                    <%= Html.ActionLink( item.Title, "Edit", new { id=item.NewsItemID } ) %> //this is where I get thrown the exception
                </td>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td id="topRow">
                    <%: item.Date %>
                </td>
            </tr>
            <tr>
                <td id="bottomRow">
                    <%: item.Details %>
                </td>
            </tr>
        </tbody>
    </table>
<% } %>
</asp:Content>

Я даже на правильном пути?Я искал это некоторое время и просто не могу понять, как заставить это работать для моего личного проекта.Заранее спасибо за любую помощь!

1 Ответ

1 голос
/ 26 февраля 2012

почему вы не используете валидатор на блоке управления?Вы можете использовать валидатор и установить элемент управления, который должен быть проверен, и определить сообщение об ошибке на элементе управления

страница никогда не публикуется, если данные в элементе управления недействительны

, вот пример

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
        ControlToValidate="TextBox1" ErrorMessage="Write Error Message Here"></asp:RequiredFieldValidator>

решить вашу проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...