sudhakarthikeyan Ответов: 0

Вставка данных в базу данных с помощью MVC


Когда я запускаю приведенный выше код он показывает следующую ошибку следующим образом

Ошибка сервера в приложении'/'.

Ресурс не может быть найден.

Описание: HTTP 404. Искомый ресурс (или одна из его зависимостей) может быть удален, изменено его имя или временно недоступен. Пожалуйста, просмотрите следующий URL-адрес и убедитесь, что он написан правильно.

Запрошенный URL-адрес: /User1/Details

Я правильно запускаю приложение

localhost:5129/User1/подробности


В чем ошибка в моем вышеприведенном коде?

Что я уже пробовал:

Мои модели кодируются следующим образом
public class UserDetails1
{
    public int UserId { get; set; }
    public string UserName { get; set; }
    public string Education { get; set; }
    public string Location { get; set; }
    public List<userdetails1> usersinfo { get; set; }
}

Мой код контроллера выглядит следующим образом (имя контроллера как User1)
[HttpPost]
public ActionResult Details(UserDetails1 user)
{
    UserDetails1 objuser = new UserDetails1();
    using (SqlConnection con = new SqlConnection("Data Source=Trenmax;Integrated Security=true;Initial Catalog=Sample"))
    {
        using (SqlCommand cmd = new SqlCommand("usercrudoperations", con))
        {
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@name", user.UserName);
            cmd.Parameters.AddWithValue("@education", user.Education);
            cmd.Parameters.AddWithValue("@location", user.Location);
            cmd.Parameters.AddWithValue("@status", "INSERT");
            con.Open();
            ViewData["result"] = cmd.ExecuteNonQuery();
            con.Close();
        }
    }
    return View();
}


Код моих представлений выглядит следующим образом (имя представления в виде деталей)
@using (Html.BeginForm("Details","User1",FormMethod.Post)) {
    <table>
    <tbody>
    <tr>
        <td>User Name:</td>
        <td>@Html.TextBoxFor(u=>u.UserName)</td>
    </tr>
    <tr>
        <td>Education:</td>
        <td>@Html.TextBoxFor(u => u.Education)</td>
    </tr>
    <tr>
        <td>Location:</td>
        <td>@Html.TextBoxFor(u=>u.Location)</td>
    </tr>
    <tr>
        <td></td>
        <td>  </td>
    </tr>
    </tbody>
    </table>
}
<h4>User Details</h4>
@if (Model != null)
{
    if (Model.usersinfo.Count > 0)
    {
        @foreach (var item in Model.usersinfo)
        {
        }
        <table>
        <tbody>
        <tr>
            <th>UserId</th>
            <th>UserName</th>
            <th>Education</th>
            <th>Location</th>
        </tr>
        <tr>
            <td>@Html.DisplayFor(modelitem => item.UserId) </td>
            <td>@Html.DisplayFor(modelitem => item.UserName)</td>
            <td>@Html.DisplayFor(modelitem => item.Education)</td>
            <td>@Html.DisplayFor(modelitem => item.Location)</td>
        </tr>
        </tbody>
        </table>
    }
else {
    <b>No Details Found.</b>
}
}

<script>
$(function () {
    var msg = '@ViewData["result"]';
    if (msg == '1')
    {
        alert("User Details Inserted Successfully");
        window.location.href = "@Url.Action("InsertUserDetails", "User")";
    }
});
</script>

Richard Deeming

Кажется, у вас нет действия под названием Details который принимает GET запрос.

[HttpGet]
public ActionResult Details()
{
    return View();
}

benjaminemanuel13

Еще одна проблема, с которой вы столкнетесь: ваш foreach находится в неправильном месте, они должны открываться и закрываться вокруг html-кода, содержащего ссылки на элемент. На самом деле петля должна быть после первой

<tr>...</tr>
и должен закрыться до того, как
</tbody>
таким образом, сгенерированный html-код будет состоять из строк.

Как и в этом случае:

@foreach (var item in Model.usersinfo){<tr>...</tr>}

0 Ответов