-1

つい最近まで、jQuery で作成した ToDoList に関するヘルプを求めていました。私は自分の能力を最大限に発揮してそれを完了することができましたが、MVC に移行しました。いくつかのチュートリアルを見て、本でいくつかのレッスンを受けましたが、まだ理解できません。私が完全に理解しているのは、関心の分離です (大学で学んだことです)。使い方を覚えたら、きっと気に入っていただけると思います。だから、私が抱えている問題はおそらく本当に単純です。

ビューとコントローラーを作成する方法と、それらを「リンク」する方法を知っています。私は ViewBag についても知っています (私が追加するかもしれないかなり賢い) が、モデルをビューに表示する方法がわかりません。私はそれを行ったレッスンを行いましたが、ここで何かが欠けているだけかもしれません.

どんな助けでも素晴らしいでしょう!

ありがとう。

ちなみに、これが私のコードです:

ToDoListController:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
using System.Web.Security;
using MvcMovie.Models;

namespace MvcMovie.Controllers
{
    public class ToDoListController : Controller
    {
        //
        // GET: /ToDoList/

        public ActionResult Index(ToDoList model)
        {
            return View(model);
        }

    }
}

ToDoListModels:

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

namespace MvcMovie.Models
{
    public class ToDoList
    {
        public int ListID { get; set; }
        public String TaskName { get; set; }
        public string Description { get; set; }
        public string Name { get; set; }
    }
}
4

2 に答える 2

2

jsonのデータを送信してみますか?これらのフィールドを使用してビューを作成すると、jsonを介してデータを送信できます。

例えば

@using(Html.BeginForm("ToDoList","IndexResponse",new{Model.ListID}))
{
   @Html.EditorFor(model => model.TaskName)
...
}

public ActionResult IndexResponse(ToDoList model)
{
    return View(model);
}
于 2013-01-15T21:04:34.510 に答える
0

答えはとても簡単です。[HttpPost]Actionメソッドの上に属性がありません。

しかし、モデルをビューに表示する方法がわかりません。

たとえば、モデルがある場合:

public class TestViewModel
{
    public int TestId { get; set; }
    public string TestStringProperty { get; set; }
}

また、ビューとコントローラーの間で双方向の通信が必要な場合は、html形式でビューを作成する必要があります。これは、ビューからサーバーと通信する方法です。

@model NamespaceOfYourModel.TestViewModel

@using(Html.BeginForm("TestAction", "ToDoListController", FormMethod.Post))
{
    @Html.HiddenFor(m => m.TestId)
    @Html.LabelFor(m => m.TestStringProperty)
    @Html.EditorFor(m => m.TestStringProperty)

    <input type="submit" name="submitForm" value="Save" />
}

次に、2つのメソッドを作成する必要があります。最初に新しいモデルオブジェクトをビューに送信し、次にフォームが送信されるときにモデルをビューから渡します。

public ActionResult TestAction()
{
    //creating new object of your model
    TestViewModel testModel = new TestViewModel();

    //it will be 1 in the second method too
    testModel.TestId = 1;
    //passing model to the view
    return View(testModel);
}

//You say you want that method to be called when form is submited 
[HttpPost]
public ActionResult TestAction(TestViewModel testModel)
{
    if(testModel != null)
    {
        //you will see that the testModel will have value passed in a view
        var imNotNull = testModel;
    }
}
于 2013-01-15T22:15:30.887 に答える