Как установить значение по умолчанию для @ Html.EditorFor (model => model.location)? - PullRequest
0 голосов
/ 19 июля 2011

Я пытался добавить, новый {@Value = "test"}, но не смог.

тогда я изменяю модель на

    private string _location = string.Empty;

    public string location { get { return _location; } set { _location = value; } }

или даже изменить string.empty на мой текст по умолчанию, все еще не удалось.

есть идеи? Thx

Ответы [ 2 ]

3 голосов
/ 19 июля 2011

Ваше решение хорошее, оно должно работать.Но так как это не так, я думаю, что вы передаете нулевую модель вашему представлению - в этом случае она никогда не достигает оценки местоположения, его нуля.Попробуйте передать ненулевую модель вашему виду.

return View(new LocationViewModel());
0 голосов
/ 19 июля 2011

опробовал ваше решение на следующем источнике, и он отлично работает для меня.

Модель

public class LocationViewModel
{
    private string _location = "test";

    public string Location
    {
        get { return _location; }
        set { _location = value; }
    }
}

Действие

    public ActionResult Index()
    {
        ViewBag.Message = "Welcome to ASP.NET MVC!";
        return View(new LocationViewModel());
    }

Просмотр

@model LocationViewModel

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

@using (Html.BeginForm()) {
    @Html.ValidationSummary(true)
    <fieldset>
        <legend>Test</legend>

        <div class="editor-label">
            @Html.LabelFor(model => model.Location)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Location)
            @Html.ValidationMessageFor(model => model.Location)
        </div>

        <p>
            <input type="submit" value="Create" />
        </p>
    </fieldset>
}

<div>
    @Html.ActionLink("Back to List", "Index")
</div>
...