ASP.NET MVC存储希伯来语到SQL Server

时间:2016-11-11 15:30:35

标签: c# sql-server asp.net-mvc hebrew

我有一个表单,用于将希伯来语中的单个数据从用户(UI)传递到SQL Server数据库。

由于某种原因,存储在SQL Server中的数据类似于" ???????"。

如果我去数据库并编辑值" ???????"用希伯来语中的实际单词,它将它保存在希伯来语中。

数据库中的字段为nvarchar

为什么当值通过代码传递到它所存储的数据库时,如#34; ??????" ?

CSHTML:

@using (Html.BeginForm()) 
{
    @Html.AntiForgeryToken()

    <div class="form-horizontal">
        <h4>Album</h4>
        <hr />
        @Html.ValidationSummary(true, "", new { @class = "text-danger" })
        <div class="form-group">
            @Html.LabelFor(model => model.AlbumName, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.AlbumName, new { htmlAttributes = new { @class = "form-control" } })
                @Html.ValidationMessageFor(model => model.AlbumName, "", new { @class = "text-danger" })
            </div>
        </div>

        <div class="form-group">
            <div class="col-md-offset-2 col-md-10">
                <input type="submit" value="צור אלבום" class="btn btn-default" />
            </div>
        </div>
    </div>
}

控制器:

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

        // POST: Albums/Create
        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Create([Bind(Include = "AlbumId,AlbumName")] Album album)
        {
            if (ModelState.IsValid)
            {
                db.Albums.Add(album);
                db.SaveChanges();
                return RedirectToAction("Index");
            }

            return View(album);
        }

1 个答案:

答案 0 :(得分:0)

在SLQ Server数据库中,更改列AlbumName的数据类型:

var char(xxx) => nvarchar(xxx)

在Code First Apporach中,您应该将Unicode设置为True

enter image description here