нужно сделать так, чтоб кнопка Save блокировалась, если UserName пустой. Но не понимаю как это сделать)
<script>
function agreeForm(f)
{
if (f.UserName = "")
f.Save.disabled = "1"
}
</script>
<form asp-controller="Calculator" asp-action="Edit" method="post">
@Html.HiddenFor(m => m.ErrorCode)
@Html.HiddenFor(m => m.Id)
<table>
<tr>
<th>Computer name:</th>
<th>User Name:</th>
<th>Expression:</th>
<th>Result:</th>
<th>Error:</th>
<th>Date:</th>
</tr>
<tr>
<td>@Html.EditorFor(m => m.ComputerName)</td>
<td>@Html.EditorFor(m => m.UserName)</td>
<td>@Html.EditorFor(m => m.Expression)</td>
<td>@Html.EditorFor(m => m.Result)</td>
<td>@Html.EditorFor(m => m.Description)</td>
<td>@Html.EditorFor(m => m.Date)</td>
</tr>
</table>
<input type="submit" name="Save" class="btn btn-default" value="Save" disabled="0" onchange="agreeForm(this.form)"/>
</form>
ASP.NET Razor генерирует статическую разметку. Динамическое поведение необходимо делать вручную, на JS.
В обработчике вы присваеваете (=) вместо сравнения (===) и лишь пытаетесь блокировать кнопку, но никогда ее не разблокируете (...disabled = false)
Кроме того, у вас достаточно примитивное правило валидации, здесь можно обойтись возможностями HTML5 - с аттрибутом required, вообще без JS, например:
<form>
<label for="choose" required>Would you prefer a banana or cherry?</label>
<input id="choose">
<button>Submit</button>
</form>
Кнопка submit просто не нажмется, пока не удовлетворены все валидационные правила.
ЗЫ Проверку необходимо обязательно продублировать на сервере.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости