Согласно комментарию Матеуса Лемоса, вместо этого я использовал класс.
public class LocationInformation
{
public string LocationDetails { get; set; }
public bool Display { get; set; }
//For data transfer
public LocationInformation()
{
}
Это класс.
<input id="ElectionJsonObject.LocationPerBallotTypeDictionary[@ballotType][@locationId]" type="checkbox" name="ElectionJsonObject.LocationPerBallotTypeDictionary[@ballotType][@locationId].Display" value="@locationInfo.Display.ToString()" checked />
<input type="hidden" name="ElectionJsonObject.LocationPerBallotTypeDictionary[@ballotType][@locationId].LocationDetails" value="@locationInfo.LocationDetails"/>
Изменив имя на свойство значений класса и значение на одно значение, затем добавив скрытый вход, являющийся другим значением, которое оно должным образом отправляет, и модель является неповрежденными значениями словаря и все.