У меня есть ViewModel, который имеет два значения (Val1 & Val2), которые я использую для простого теста реальности в моей контактной форме.нулевые ссылки для случайных целых чисел
public class ContactFormViewModel
{
private Random Random { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string EmailAddress { get; set; }
public string Message { get; set; }
public int Val1 => Random.Next(1, 9);
public int Val2 => Random.Next(6, 19);
}
Я стараюсь использовать это во взгляде следующим образом.
@model TraderToolkit.WebUI2.Models.EmailViewModels.ContactFormViewModel
//parts removed for brevity
@using (Html.BeginForm())
{
<div class="container">
<div class="form-group">
<form role="form" action="" method="post" id="registrationForm">
//parts removed for brevity
<label for="RealTest">What is <span id="val1">@Model.Val1</span> + <span id="val2">@Model.Val2</span>? </label>
<div class="input-group">
<input type="text" class="form-control" name="RealTest" id="RealTest" required>
<span class="input-group-addon"><i class="glyphicon glyphicon-ok form-control-feedback"></i></span>
</div>
</div>
<button type="submit" class="btn btn-primary hidden" id="Send" name="Send" value="Send"></button>
</div>
</form>
</div>
</div>
}
Ошибка при запуске сир и нажав на контактную форму, является пустой ссылкой исключение, а не указывает на экземпляр объекта. Это имеет смысл, поскольку класс никогда не «обновляется». Поскольку я новичок в MVC, возможно ли это в представлении? Если нет, как создать экземпляр этого класса, чтобы я мог получить доступ к Val1 и Val2 в представлении?
Решение благодаря HaukurHaf
обновленной модель
public class ContactFormViewModel
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string EmailAddress { get; set; }
public string Message { get; set; }
public int Val1 { get; set; }
public int Val2 { get; set; }
public ContactFormViewModel()
{
var rnd = new Random();
Val1 = rnd.Next(1, 9);
Val2 = rnd.Next(6, 19);
}
}
Хотя действительное предложение, тот, который я буду включать, он не решает проблему, поскольку класс по-прежнему не обновляется, поэтому он не запускает конструктор. – dinotom
Вы должны создать экземпляр модели в своем контроллере и передать ее в представление ... – HaukurHaf
Представление для класса ContactIs из моей модели домена, как использовать его для использования ViewModel? – dinotom