我在这里有这个静态方法:
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>
我怎么能继续做我想做的事?任何人都可以向我提出建议如何进行?我想要一个灵活的解决方法,因为你现在的观点将会改变,我需要这种方法在任何地方都适用。
谢谢。
答案 0 :(得分:1)
您是否考虑过将数据注释添加到模型中,如下所示:
[RegularExpression(@"^\$?\d+(\.(\d{2}))?$")]
中捕获的
当然,这样做的缺点是您必须将它添加到模型中要应用的所有属性中。您可以使用远程验证并通过javascript将其关闭。否则,您将无法在客户端执行此操作。 (但这并不难做到。)