0

ここにこの静的メソッドがあります:

public static string ParseStringForSpecialChars(string stringToParse)
{
    const string regexItem = "[^a-zA-Z0-9 ]";

    string stringToReturn = Regex.Replace(stringToParse, regexItem, @"\$%&'");

    return stringToReturn;
}

この方法は、多くの文字列がアプリケーションに害を及ぼすのを防ぐため、うまく機能します。物事を行うためのより良い方法があると思いますが、それは私の投稿のポイントではありません.

今私が欲しいのは、このメソッドを呼び出す javascript の任意のテキスト ボックスからすべての値を取得し、データをコントローラーに送信することです。

私がこの見解を持っているとしましょう:

@using MyApp.Utilities
@model List<MyApp.Models.CustomerObj>

@{
    ViewBag.Title = "Customer Index";
}

<h2>Customer Index</h2>

<p>
    @Html.ActionLink("Create New", "Create")
    @using (Html.BeginForm())
    {
        <p>
            Name: @Html.TextBox("customerName") <br/>
            Address: @Html.TextBox("customerAddress") City: @Html.TextBox("customerCity") <br/>
             <br />
            Postal Code: @Html.TextBox("customerPC")<br/>
            Phone Number: @Html.TextBox("customerPhone") Fax Number: @Html.TextBox("customerFax")<br />
            Mail: @Html.TextBox("customerEmail")  <br/>
            <input type="submit" value="Filter" style="float:right">
        </p>
    }
</p>

やりたいことをやり続けるにはどうすればいいですか?続行する方法を提案してくれる人はいますか? 現在のビューが変更されるため、柔軟な回避策が必要であり、このメソッドをどこにでも適用できるようにする必要があります。

ありがとうございました。

4

1 に答える 1

1

次のように、モデルにデータ注釈を追加することを検討しましたか?

[RegularExpression(@"^\$?\d+(\.(\d{2}))?$")]

これは次からキャプチャされました: http://www.asp.net/mvc/tutorials/older-versions/models-%28data%29/validation-with-the-data-annotation-validators-cs

もちろん、これの欠点は、適用したいモデル内のすべてのプロパティに追加する必要があることです。リモート検証を使用して、javascript 経由で起動できる場合があります。そうしないと、クライアント側でそれを行うことになります。(しかし、とにかくそれを行うのはそれほど難しいことではありません。)

于 2013-05-02T15:17:01.060 に答える