0

私はasp.netmvcを初めて使用します。Asp.netmvc2を使用して単純なアプリケーションに取り組んでいます。ユーザー入力を取得して表示するコントローラーを作成しました。アプリケーションを実行すると、このエラーが表示されます。私のコード以下のとおりです。

  Server Error in '/' Application.
  The resource cannot be found. 

コントローラー

   [HttpPost]
    public ActionResult DisplayCustomer(Customer obj)
    {
        return View("DisplayCustomer",obj);
    }

表示

 <% using (Html.BeginForm("DisplayCustomer","test1",FormMethod.Post))
 { %>
 Enter customer id :- <%= Html.TextBox("Id",Model)%> <br />
 Enter customer code :- <%= Html.TextBox("CustomerCode",Model) %><br />
 Enter customer Amount :- <%= Html.TextBox("Amount",Model) %><br />
 <input type="submit" value="Submit customer data" />
<%} %>

モデル

     public class Customer
{
    private string _Code;
    private string _Name;
    private double _Amount;

    public string Code
    {
        set
        {
            _Code = value;
        }
        get
        {
            return _Code;
        }
    }

    public string Name
    {
        get
        {
            return _Name;
        }
        set
        {
            _Name = value;
        }
    }

    public double Amount
    {
        set
        {
            _Amount = value;
        }
        get
        {
            return _Amount;
        }
    }
}

私は自分のアプリケーションを次のように実行しています/test1/DisplayCustomer。それを解決するためにWebを閲覧しましたが、解決策が得られませんでした。どこで問題が発生したかを教えてください。

4

4 に答える 4

1

[HttpPost] を削除

public ActionResult DisplayCustomer()
    {
        return View();
    }

投稿の目的で、もう 1 つのアクション メソッドを含めます。

 [HttpPost] 
 public ActionResult DisplayCustomer(Customer obj)
        {
           //Code for processing post data

           return View("DisplayCustomer",obj);
        }
于 2013-03-20T06:54:42.560 に答える
0

コントローラでこれを試してください:

public ActionResult DisplayCustomer()
    {
        return View();
    }

 [HttpPost]
    public ActionResult DisplayCustomer(Customer obj)
    {
        return RedirecttoAction("DisplayCustomer",obj);
    }

アクションでこれを試してください:

<% using (Html.BeginForm("DisplayCustomer",FormMethod.Post))
 { %>
 Enter customer id :- <%= Html.TextBox("Id",Model)%> <br />
 Enter customer code :- <%= Html.TextBox("CustomerCode",Model) %><br />``
 Enter customer Amount :- <%= Html.TextBox("Amount",Model) %><br />
 <input type="submit" value="Submit customer data" />
<%} %>
于 2013-03-20T06:59:18.430 に答える
0

上記は単に機能しません。私が何をしても、Html.TextBox("Id", Model) の下に赤い波線があります。,Model を機能させるには削除する必要があります。最初のアクションや [HttpPost] は必要なく、うまく機能します。

于 2013-06-23T17:26:12.877 に答える
0

少し混乱しているような気がします。

そのように考えてください:

コントローラには、この場合、少なくとも 2 つのアクションが必要です。

1 つ (GET メソッド) - PAGE に対するクライアント要求を取得し、適切な html (ビュー) を返すアクションである必要があります。このアクションは、[HttpGet] とそのデフォルト名 (今はそれを使用) で装飾する必要があります。そのインデックスは次のとおりです。

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

これを作成したら、その名前に一致する適切なビュー ファイルを作成してください。この場合は、適切な Views フォルダーに Index.cshtml を作成します (Visual Studio を使用している場合は、コントローラーでアクションを右クリックし、次に「ビューの追加」オプションを選択すると、それが行われます。

注意すべき 2 番目のアクションは、ページのフォームからリクエストを取得するアクションです。これは、あなたがすでに書いたものと非常によく似ています。

あなたの問題について-コントローラーでインデックスアクションを作成することから始め、適切なビューファイルを作成し、ビルドして実行します-Index.cshtmlがレンダリングされる必要があります。

HTTP GET/POST メソッドと使用法に関する一般的な資料と、MVC の一般的な概念に関する資料を読むことをお勧めします (MVC はメソッドであり、操作方法です。ASP.NET だけではなく、一般的なものです)。プログラミングの世界で)。

それが役に立ったことを願っています。

于 2013-03-20T06:54:20.233 に答える