Member 13053943 Ответов: 2

Установка объекта из классов и объектов


Я хочу знать разницу между тем, что я набираю в приведенном ниже коде.Я хочу, чтобы кто-то также объяснить основы ООП для меня.у меня есть трудности в определении объекты, и использовать их на любые мои работы

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

в чем разница между этими двумя созданными объектами?

ViewModel vm = new ViewModel();
var vm = new ViewModel();


я должен передать значение в viewbag, которое будет отображаться как подтверждающее сообщение, прежде чем я отправлю его в базу данных.
это мой контроллер

public class CoursesStudentController : Controller
    {
        public uniscoreEntities db = new uniscoreEntities();
        

        // GET: CoursesStudent      
        public ActionResult AddCourse(int? id)
        {
                     
            CoursesStudentViewModel VM = new CoursesStudentViewModel();
            Student St = db.Students.Find(id);

            VM.FirstName = St.FirstName;
            VM.LastName = St.LastName;

            VM.Student_Id = St.id_Student;

            VM.Courses = new SelectList(db.Courses, "id_Course", "CourseName");
            

            return View(VM);
        }

        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult AddCourse(CoursesStudentViewModel  VM)
        {                      
            if (ModelState.IsValid)
            {
                Student_Course sc = new Student_Course();
                
                int Mark = 0;
                {                        
                    if     (Mark < 100 || Mark > 80) { sc.Grade = "A"; }
                    else if (Mark < 80 || Mark > 70) { sc.Grade = "B"; }
                    else if (Mark < 60 || Mark > 69) { sc.Grade = "C"; }
                    else if (Mark < 50 || Mark > 59) { sc.Grade = "D"; }
                    else if (Mark < 10 || Mark > 49) { sc.Grade = "E"; }
                }
                
               
                    sc.Course_id = VM.Course_Id;
                    sc.Mark = VM.Mark;
                    sc.Student_id = VM.Student_Id;
                    ViewBag.Message = sc;
                         
                db.Student_Course.Add(sc);
                db.SaveChanges();               
                return RedirectToAction("AddCourse");
            }          
            return View(VM);
       
    }
    }
}


это моя точка зрения

@model UniScore.ViewModels.CoursesStudentViewModel

@{
    ViewBag.Title = "AddCourse";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<h2>Add Course</h2>
<div>
    <h4>Student</h4>
    <hr />
    <dl class="dl-horizontal">
        <dt>
            @Html.DisplayNameFor(model => model.FirstName)
        </dt>

        <dd>
            @Html.DisplayFor(model => model.FirstName)
        </dd>

        <dt>
            @Html.DisplayNameFor(model => model.LastName)
        </dt>

        <dd>
            @Html.DisplayFor(model => model.LastName)
        </dd>
    </dl>
</div>


@using (Html.BeginForm("AddCourse", "CoursesStudent", FormMethod.Post, new { id = "AddCourse", name = "VM" }))
{
    @Html.AntiForgeryToken()
    <div class="form-horizontal">
    @*<input type="hidden" value="@ViewBag.enr" name="id_Student"/>*@ 
    @Html.HiddenFor(model => model.Student_Id)
    <div class="form-group">
        @Html.LabelFor(model => model.CourseName, htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.DropDownListFor(model => model.Course_Id, Model.Courses, new { htmlAttributes = new { @class = "form-control" } })

            @Html.ValidationMessageFor(model => model.CourseName, "", new { @class = "text-danger" })
        </div>
    </div>

    <div class="form-group">
        @Html.LabelFor(model => model.Mark, htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.EditorFor(model => model.Mark, new { htmlAttributes = new { @class = "form-control" } })

            @Html.ValidationMessageFor(model => model.Mark, "", new { @class = "text-danger" })
        </div>
    </div>

    <div class="form-group">
        <div class="col-md-offset-2 col-md-10">
                       <input type="submit" value="AddCourse" class="btn btn-default"/>              
                   @*<button onclick="addcourse()">Add Course value="AddCourse"</button>*@ 
                    </div>
                </div>
            </div>
    }
           <div>
                @Html.ActionLink("Back to List", "Index", "Students")
            </div>

2 Ответов

Рейтинг:
1

sachin.vishwa90

прочитав опубликованный ответ, я уверен, что вы получили ответ на свой первый вопрос. это ответ на ваш второй вопрос

ранее в вашем коде вы использовали кнопку и вызывали некоторую функцию javascript,которая теперь комментируется.
Я бы рекомендовал вам использовать тот же подход для вашего типа ввода.

<input type="submit" value="AddCourse" onclick="isConfirmed();" class="btn btn-default"/>

<script>
function isConfirmed()
{
if(confirm('are you sure want to change ?'))
return true;
else 
return false;
}
</script>


Рейтинг:
0

F-ES Sitecore

Цитата:
в чем разница между этими двумя созданными объектами?


На самом деле нет.

ViewModel vm = new ViewModel();


Здесь вы определяете переменную vm и делаете ее типа ViewModel, а затем назначаете ее новому экземпляру класса ViewModel.

var vm = new ViewModel();


Здесь вы определяете vm как "var", что означает, что вы позволяете компилятору работать с типом, а не вводите его. Итак, компилятор использует некоторый базовый интеллект и видит, что вы назначаете vm объект типа ViewModel, поэтому vm должен быть ViewModel, поэтому он меняет "var" на "ViewModel" и компилирует его вместо этого

ViewModel vm = new ViewModel();


Как вы можете видеть, это идентично вашей предыдущей строке. "var" - это не тип или динамическая переменная, как ViewBag, это просто" помощь в программировании", где вы заставляете компилятор работать с типом за вас.

Что касается остальной части вашего поста, то я не видел релевантности, но если вы хотите, чтобы это сообщение было в html, то просто добавьте его в представление, где оно необходимо

@ViewBag.Message


Member 13053943

спасибо за объяснение по viewmodel, это идентично, вторая часть моего вопроса о том,что я размещаю информацию в базе данных,прежде чем она будет опубликована,должно быть подтверждающее сообщение в виде всплывающего окна, чтобы отобразить все, что я набрал там перед публикацией, поэтому я дал свой контроллер и представление для вас, чтобы вы могли сделать предложения