0

Label、 、Textboxおよびを で取得しButtonましたPage

に値を入力すると、Textboxに何かを表示したいLabel。もそのButton情報を取得し、いくつかのコードを実行します。

ASP.NET では、これら 3 つのコントロールの周りに Ajax を配置し、UpdatePanel2 つのイベントを追加しTextBoxます。TextChangeそしてButton.Clickポストバックに反応します。

MVCでこれを行うにはどうすればよいですか?

4

1 に答える 1

1

MVC と Web フォームのライフサイクルはどちらも異なります。MVCはサーバーコントロールに関するものではありません....ビューステート... Webフォームにページライフサイクルイベントはありません...

ASP.NET WebForms と比較して、ASP.NET MVC ページの「ページ ライフサイクル」とは何ですか? お役に立てれば..

今あなたのポイントに来ています。

テキストボックスに値を入力しているときにラベルに何かを表示したい場合は、クライアント側のスクリプトを使用する必要があります。以下の例を参照してください

JavaScript

<script type="text/javascript" language="javascript">
        function textCounter(field, field2, maxlimit) {
            var countfield = document.getElementById(field2);
            if (field.value.length > maxlimit) {
                field.value = field.value.substring(0, maxlimit);
                return false;
            } else {
                countfield.value = maxlimit - field.value.length;
            }
        }
</script>

あなたの HTML ページ

<%using (Html.BeginForm("Index", "Account", FormMethod.Post)) // here index is a ActionName, Account is a controller name
      {%>

<input type="text" name="Message"  onkeyup="textCounter(this,'counter',208)"/>

<label><input disabled  maxlength="3" size="3" value="208" id="counter"  /></label>

<input type="submit" value="Send" />  
<%}%>

ここで
、テキストボックスのキーアップイベントの textCounter() 関数は、ラベルに値を表示します。

送信ボタンはフォームを送信し、コントローラー「アカウント」でアクション「インデックス」を呼び出します。アクションがどのように機能するかを以下で参照してください

public class AccountController : Controller
{
    [HttpPost]
    public ActionResult index(FormCollection result)
    {
     string TextBoxValue=result["Message"];
     return view("yourviewname");
     }
}

この例があなたに役立つことを願っています..

于 2013-04-29T07:04:23.687 に答える